init: raw cpuid/rdtsc access via ctypes
This commit is contained in:
commit
fa82965ab5
15 changed files with 437 additions and 0 deletions
48
docs/quickstart.md
Normal file
48
docs/quickstart.md
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
# quickstart
|
||||
|
||||
## установка
|
||||
|
||||
```
|
||||
pip install rawcpu
|
||||
```
|
||||
|
||||
## узнать процессор
|
||||
|
||||
```python
|
||||
import rawcpu
|
||||
|
||||
print(rawcpu.vendor()) # GenuineIntel / AuthenticAMD
|
||||
print(rawcpu.brand()) # полная строка модели
|
||||
```
|
||||
|
||||
## проверить фичи перед SIMD-кодом
|
||||
|
||||
```python
|
||||
if rawcpu.has_feature("avx2"):
|
||||
# можно грузить AVX2-путь
|
||||
...
|
||||
else:
|
||||
# fallback
|
||||
...
|
||||
```
|
||||
|
||||
список доступных имён — `rawcpu.FEATURES`.
|
||||
|
||||
## точный замер тактов
|
||||
|
||||
`time.perf_counter()` меряет время через ОС, `rdtsc()` — реальные такты процессора напрямую:
|
||||
|
||||
```python
|
||||
start = rawcpu.rdtsc()
|
||||
do_something()
|
||||
end = rawcpu.rdtsc()
|
||||
print(end - start, "cycles")
|
||||
```
|
||||
|
||||
## сырой cpuid
|
||||
|
||||
```python
|
||||
eax, ebx, ecx, edx = rawcpu.cpuid(leaf=7, subleaf=0)
|
||||
```
|
||||
|
||||
leaf/subleaf — как в интеловской документации по CPUID.
|
||||
Loading…
Add table
Add a link
Reference in a new issue