Non-computational functions for checking library version, quering information about processor, and benchmarking. More...
Static Public Member Functions | |
static void | Release () |
Deinitializes Yeppp! library and releases all associated resources. More... | |
static Version | GetVersion () |
Provides information about Yeppp! library version. More... | |
static bool | IsSupported (CpuIsaFeature isaFeature) |
Checks if the specified ISA extension is supported by the processor. More... | |
static bool | IsSupported (CpuSimdFeature simdFeature) |
Checks if the specified SIMD extension is supported by the processor. More... | |
static bool | IsSupported (CpuSystemFeature systemFeature) |
Checks if the specified non-ISA CPU or system extension is supported by the processor. More... | |
static CpuVendor | GetCpuVendor () |
Provides information about the vendor of the processor. More... | |
static CpuArchitecture | GetCpuArchitecture () |
Provides information about the architecture of the processor. More... | |
static CpuMicroarchitecture | GetCpuMicroarchitecture () |
Provides information about the microarchitecture of the processor. More... | |
static CpuCycleCounterState | AcquireCycleCounter () |
Initializes the processor cycle counter and starts counting the processor cycles. More... | |
static ulong | ReleaseCycleCounter (CpuCycleCounterState cycleCounter) |
Stops counting the processor cycles, releases the system resources associated with the cycle counter, and returns the number of cycles elapsed. More... | |
static ulong | GetTimerTicks () |
Queries the ticks count of the high-resolution system timer. More... | |
static ulong | GetTimerFrequency () |
Queries the frequency (number of ticks per second) of the high-resolution system timer. More... | |
static ulong | GetTimerAccuracy () |
Detects the minimum time difference in nanoseconds which can be measured by the high-resolution system timer. More... | |
Non-computational functions for checking library version, quering information about processor, and benchmarking.
|
inlinestatic |
Deinitializes Yeppp! library and releases all associated resources.
This function is inteded for .Net libraries which might be unloaded (e.g. plugins) and should be called immediately before the module is unloaded.
Calling Yeppp! functions after after a call to this method is prohibited and might crash the application.
System.SystemException | Resources allocated by Yeppp! library could not be unloaded due to memory corruption. |
System.InvalidOperationException | Yeppp! library is already released by this module. |
|
inlinestatic |
Provides information about Yeppp! library version.
|
inlinestatic |
Checks if the specified ISA extension is supported by the processor.
isaFeature | An object specifying the ISA extension of interest. |
|
inlinestatic |
Checks if the specified SIMD extension is supported by the processor.
simdFeature | An object specifying the SIMD extension of interest. |
|
inlinestatic |
Checks if the specified non-ISA CPU or system extension is supported by the processor.
systemFeature | An object specifying the non-ISA CPU or system extension of interest. |
|
inlinestatic |
Provides information about the vendor of the processor.
|
inlinestatic |
Provides information about the architecture of the processor.
|
inlinestatic |
Provides information about the microarchitecture of the processor.
|
inlinestatic |
Initializes the processor cycle counter and starts counting the processor cycles.
Call ReleaseCycleCounter to get the number of processor cycles passed.
The cycle counters are not guaranteed to be syncronized across different processors/cores in a multiprocessor/multicore system. It is recommended to bind the current thread to a particular logical processor before using this function.
System.PlatformNotSupportedException | The processor does not have a cycle counter or the operating system does not provide access to the CPU cycle counter |
System.SystemException | If the attempt to read the cycle counter or release the OS resources failed inside the OS kernel. |
|
inlinestatic |
Stops counting the processor cycles, releases the system resources associated with the cycle counter, and returns the number of cycles elapsed.
cycleCounter | An object representing the state of the cycle counter returned by AcquireCycleCounter(). The cycle counter should be released only once, and this function invalidates the state object. |
System.InvalidOperationException | The cycleCounter object is not a valid state of the cycle counter. This can happen if the cycleCounter object was released previously. |
System.PlatformNotSupportedException | The processor does not have a cycle counter or the operating system does not provide access to the CPU cycle counter |
System.SystemException | If the attempt to read the cycle counter or release the OS resources failed inside the OS kernel. |
|
inlinestatic |
Queries the ticks count of the high-resolution system timer.
The difference in ticks between two time moments divided by timer frequency gives the number of seconds between two time moments.
System.SystemException | The attempt to read the high-resolution timer failed inside the OS kernel. |
|
inlinestatic |
Queries the frequency (number of ticks per second) of the high-resolution system timer.
The difference in ticks between two time moments divided by timer frequency gives the number of seconds between two time moments.
System.SystemException | The attempt to read the high-resolution timer frequency failed inside the OS kernel. |
|
inlinestatic |
Detects the minimum time difference in nanoseconds which can be measured by the high-resolution system timer.
System.SystemException | If the attempt to measure the accuracy of high-resolution timer failed inside the OS kernel. |