No description
Find a file
2026-08-18 05:06:56 +05:00
.github/workflows init: raw cpuid/rdtsc access via ctypes 2026-07-19 23:29:46 +05:00
docs init: raw cpuid/rdtsc access via ctypes 2026-07-19 23:29:46 +05:00
native init: raw cpuid/rdtsc access via ctypes 2026-07-19 23:29:46 +05:00
src/rawcpu init: raw cpuid/rdtsc access via ctypes 2026-07-19 23:29:46 +05:00
tests init: raw cpuid/rdtsc access via ctypes 2026-07-19 23:29:46 +05:00
.gitignore init: raw cpuid/rdtsc access via ctypes 2026-07-19 23:29:46 +05:00
LICENSE init: raw cpuid/rdtsc access via ctypes 2026-07-19 23:29:46 +05:00
llms.txt chore: update profile links to devsavsis 2026-08-18 05:06:56 +05:00
pyproject.toml chore: update profile links to devsavsis 2026-08-18 05:06:56 +05:00
README.md chore: badges + point profile links at devsavsis 2026-08-18 02:30:59 +05:00
setup.py init: raw cpuid/rdtsc access via ctypes 2026-07-19 23:29:46 +05:00

rawcpu

CI Coverage pypi downloads versions license

прямой доступ к инструкциям 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, юзермодом не достать без драйвера