No description
| .github/workflows | ||
| docs | ||
| native | ||
| src/rawcpu | ||
| tests | ||
| .gitignore | ||
| LICENSE | ||
| llms.txt | ||
| pyproject.toml | ||
| README.md | ||
| setup.py | ||
rawcpu
прямой доступ к инструкциям CPUID/RDTSC из питона — то, что нормально делает только C++, а чистый питон вообще никак. крошечная нативная dll под капотом + ctypes сверху, никакого Python C API.
sequenceDiagram
App->>rawcpu: cpuid(1) / rdtsc()
rawcpu->>DLL: ctypes call
DLL->>CPU: инструкция CPUID/RDTSC напрямую
CPU-->>DLL: сырые регистры / счётчик тактов
DLL-->>App: tuple(int) / int
установка
pip install rawcpu
пока только windows x64.
юзать
import rawcpu
print(rawcpu.vendor()) # 'GenuineIntel' / 'AuthenticAMD'
print(rawcpu.brand()) # 'AMD Ryzen 9 ...'
print(rawcpu.has_feature("avx2")) # True/False, без запуска кода который может упасть на старом CPU
start = rawcpu.rdtsc()
# твой код
end = rawcpu.rdtsc()
print(end - start, "тактов") # точнее чем time.perf_counter(), считает реальные такты CPU
документация
фичи
- сырой
cpuid(leaf, subleaf)— регистры eax/ebx/ecx/edx как есть rdtsc()— счётчик тактов CPU напрямую, без ОС-абстракцииhas_feature()— проверка sse/avx/avx2/aes/fma и т.д. по битам без падений на неподдерживающем CPU- typed, питон 3.10–3.13
чего нет
- linux/mac — только windows пока
- запись в регистры / что-то в духе MSR — это уже ring 0, юзермодом не достать без драйвера