Python CPU功能检测
项目描述
CPUFeature
CPUFeature 是一个用于检测 x86/AMD64 处理器上 CPU 功能的工具。特别设计为在导入时具有非常低的开销(约 1 毫秒)并检测在混合使用多线程和多进程的高性能计算中经常重要的功能。检测到的 CPU 功能包括
- SIMD 指令支持
- 核心数量(虚拟和物理核心)
- 主板上的 CPU 数量。
- 缓存大小
它使用 C99 编写。它支持 Windows 上的 MSVC 和 Linux 上的 GCC/LLVM 编译器。MacOSX 应该也支持 GCC/LLVM。CPUFeature 在 Creative Commons Zero 下授权,因此可以自由地将其作为子模块纳入您的项目。
CPUFeature 被认为是 Alpha 状态,因为在 GitHub Actions 上对各种平台进行了测试,但我们预计会出现边缘情况。
示例
该模块在导入时生成一个名为 CPUFeature
的字典,其中包含有关宿主机的优化和编译的有用信息。对于我的 Intel i7-7820X Skylake CPU,它生成以下信息
> python -c "import cpufeature; cpufeature.print_features()"
=== CPU FEATURES ===
VendorId : GenuineIntel
num_virtual_cores : 16
num_physical_cores : 8
num_threads_per_core : 2
num_cpus : 1
cache_line_size : 64
cache_L1_size : 32768
cache_L2_size : 1048576
cache_L3_size : 11534336
OS_x64 : True
OS_AVX : True
OS_AVX512 : True
MMX : True
x64 : True
ABM : True
RDRAND : True
BMI1 : True
BMI2 : True
ADX : True
PREFETCHWT1 : False
MPX : True
SSE : True
SSE2 : True
SSE3 : True
SSSE3 : True
SSE4.1 : True
SSE4.2 : True
SSE4.a : False
AES : True
SHA : False
AVX : True
XOP : False
FMA3 : True
FMA4 : False
AVX2 : True
AVX512f : True
AVX512pf : False
AVX512er : False
AVX512cd : True
AVX512vl : True
AVX512bw : True
AVX512dq : True
AVX512ifma : False
AVX512vbmi : False
AVX512vbmi2 : False
AVX512vnni : False
字段说明
- 如果
num_threads_per_core > 1
,则可能存在 Intel Hyperthreading(或等效架构)。在虚拟环境中,物理核心数量可能不可靠。 - 缓存大小以字节为单位。
- 对于 AVX2,请检查
AVX2
和OS_AVX2
。 - 对于AVX512,请检查
AVX512f
和OS_AVX512
。在ICC编译之外,Python对AVX512指令的支持非常有限。直到MSVC2017,MSVC都没有AVX512支持。
作者
- 基于Alexander Yee的FeatureDetector(https://github.com/Mysticial/FeatureDetector)。
- 由Robert A. McLeod移植到Python,并增加了核心和缓存大小的检测。
drfinkus
为AMD支持做出了贡献。WidgetA
为使用Clang编译提供了支持。
发行说明
0.2.1
- 支持的Python版本现在为3.8 - 3.11。
- 添加了AVX512vbmi2和AVX512vnni的测试。
0.2.0
- 通过
cibuildwheels
和GitHub Actions添加了预构建的轮子,适用于Linux/Windows/MacOSX上的Python 3.6-3.9。 - 添加了对AMD处理器的支持。
- 添加了一个用于
valgrind
的脚本,以在模块崩溃时更容易地定位问题。
0.1.1
- 针对
clang
编译的修复。
0.1.0
- 添加了对处理器、核心和缓存大小的检测
- 创建了FeatureDetector的Python包装器
- 将FeatureDetector转换为C99,以获得更好的跨平台兼容性
项目详情
下载文件
下载适用于您平台的应用程序。如果您不确定要选择哪个,请了解更多关于安装包的信息。
源代码发行版
cpufeature-0.2.1.tar.gz (15.0 kB 查看散列)
构建发行版
cpufeature-0.2.1-cp311-cp311-win32.whl (14.4 kB 查看散列)
cpufeature-0.2.1-cp310-cp310-win32.whl (14.4 kB 查看哈希值)
cpufeature-0.2.1-cp39-cp39-win32.whl (14.4 kB 查看哈希值)
cpufeature-0.2.1-cp38-cp38-win32.whl (14.4 kB 查看哈希值)
关闭
cpufeature-0.2.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fb05d1c4c0d7a4d4fead0142de6f538e23324b0cc92cab98abcfe93977db5c28 |
|
MD5 | a226ed100468e932283f37c2065c77bb |
|
BLAKE2b-256 | 87cb006cbc9c06de9fafdd8182e1a38d793d89ee89b48eab052053b3e5cb2ddf |
关闭
cpufeature-0.2.1-cp311-cp311-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a9d97d7578bb4be3e089538f91247d06c36125fad9c6298048397449bbb2b299 |
|
MD5 | 431979ee73ad9f82fe6a441ebb16b0a4 |
|
BLAKE2b-256 | e03e7c0cfe499eb6579c4499fa925713c4d5c2042b9ab83006aa033df83240f4 |
关闭
cpufeature-0.2.1-cp311-cp311-win32.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 15764863b3e79c91dea6ce9beefabe056d0dfd31bf32b8d7f0efc2a443610352 |
|
MD5 | 3b79e90de0e55879320e136a7a052882 |
|
BLAKE2b-256 | 45bf69547ef04847181a8b3ff8ece5fc7df34e38ccb82a5fc94190dfe8f9efb0 |
关闭
cpufeature-0.2.1-cp311-cp311-musllinux_1_1_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3e0e87a47484adf8590c94d1ca99ca851e693700f2e442d40eba106f2d1678bb |
|
MD5 | f7edd3075f4342790d2332ea60ddd4c6 |
|
BLAKE2b-256 | ed70c97c6d63e07bc37d2d811bb821120ef442721a0c66b12cc0282f902b976f |
关闭
cpufeature-0.2.1-cp311-cp311-musllinux_1_1_i686.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c1abc996e520838c291486e60763bc7879dbaf61f9c4bac79fd4e3fafc6dbed8 |
|
MD5 | 3e3456e6cbf96b811af50d799eb18c15 |
|
BLAKE2b-256 | f0d200ce8921c36402fafaa3a88f4afcd71400ce04c3b3b61e7e56f7f3c59a4c |
关闭
cpufeature-0.2.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ce7cae486eef354a41da09a85e0f46a08fc0fd3fd83800ed16246c9f3f51b089 |
|
MD5 | b0cc16dab09b494daacd9c944748ebd5 |
|
BLAKE2b-256 | ba71bf2c89679fcfa67bb20dc795ba30a01bbe5eea6de531c8f18bc6ea6686c0 |
关闭
cpufeature-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fa5aeaa44cfab10907386bb97deebf3cc92c390f49e20ee02630576ce677fc98 |
|
MD5 | 24dff2072bc08fbb63b9acdf8b55b03f |
|
BLAKE2b-256 | 9e38e40060bcf3a787f7b4bbbe06e85429112f57b8be55a2279ca7833d393719 |
关闭
cpufeature-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8312800e66c306b4b06e8f62839c15924efb7d888358fe9d63278cdd2f718426 |
|
MD5 | 337c9a5a59931fdc3bc2bdc46423cf83 |
|
BLAKE2b-256 | d44ad3bf4644f1627e54e897a109253b1c7a88d8660d3417da6be5475d3984cc |
关闭
哈希值 用于 cpufeature-0.2.1-cp310-cp310-musllinux_1_1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6961089f39cccc6ce2bed0e6fa68e634590b60d89ce04cffbe0e35db501d34c4 |
|
MD5 | ba6d5db2e34a4c4e7f5aa9e9d20d32ba |
|
BLAKE2b-256 | 5553a592fec679e97960f7f3efde57d871bdaaaa92e686151929177afc48ca6f |
关闭
哈希值 用于 cpufeature-0.2.1-cp310-cp310-musllinux_1_1_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e3bb3175c864cf12f433910947c8de0e3dd76ba11079acb9c29435ad3daf52fe |
|
MD5 | 44c73f41ad41c287d923fb3fea94f791 |
|
BLAKE2b-256 | 3199ec7e6e8c6132a05493cf0a6a7a663b8433fb8077630a30c13193eabef72a |
关闭
哈希值 用于 cpufeature-0.2.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8db44483c76f44b918e913be69e6c68cca06c8b3ac153575c627538fee482aa2 |
|
MD5 | cbbc56dfa6252695a33d0352f32eb5cc |
|
BLAKE2b-256 | 42c62bd4162791c9b16d02fb76ca6cf65cf7305430125ce4c78be341cb8e150a |
关闭
哈希值 用于 cpufeature-0.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8f566356ec144b0daec6e75ec03778238fae91bcefb97fb7593f268a98864ee6 |
|
MD5 | a8b634709e412892aa147f4d57b62047 |
|
BLAKE2b-256 | 1c253aae8ed96b053f092ff24c1600f7a2ce5320a32bc24f7c4b6bcfcdac16c9 |
关闭
哈希值 用于 cpufeature-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4c0648b1fec3694b5882c54fe0d84a98777aafb691dffd380ed1e39ff176f340 |
|
MD5 | ba94768f4980fd6813a23caa8b01752a |
|
BLAKE2b-256 | 93fb3145695b6725b746d6eda74901b1f7a12b879ea1202fd365dddbff7e314e |
关闭
哈希值 用于 cpufeature-0.2.1-cp39-cp39-musllinux_1_1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 936b9805d4d856bed306d5d51bcc59a6352b2d6d5888dd1886054516e587cd5e |
|
MD5 | bcd3d2734638482563036e8552e7845a |
|
BLAKE2b-256 | c36083353a63973931de733c26ddf9a81a83babe01fd2b0ee1d8a24a127063ea |
关闭
哈希值 用于 cpufeature-0.2.1-cp39-cp39-musllinux_1_1_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 580dc640be481936e955e33cbed1bda5ea5af76fd2f88d606609542c2ff99242 |
|
MD5 | b7a658f5c1bfda847f9918bd36eeeec6 |
|
BLAKE2b-256 | 0217868cb9d735fa81469f39be4d0b4646dfcde5c78af3033476c59549909af0 |
关闭
哈希值 用于 cpufeature-0.2.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 880ae6980857369a3325c844a6151ff7657e1934db01ba2250bc5f3f031d9c3e |
|
MD5 | c9e30a096825af3d1bc06d9f079bfd00 |
|
BLAKE2b-256 | 0465e14c1e6fae9696155f576abe04ed8049afbad9291ee0ffd53c0fbda13205 |
关闭
哈希值 用于 cpufeature-0.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2055a6909a998b882c8b86e28e920b65fc45a184dd62c0c1af389d538bf94188 |
|
MD5 | 067612a8efe37024272f847d1afbc74f |
|
BLAKE2b-256 | ed66c2b6818fb17f054364c0317448d707f2819c294a3bc2e5ef544478b1c3da |
关闭
哈希值 用于 cpufeature-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 617888149b1c1aa2d4b55d022e7aea4f22819c99f1ee8f44d7ed0421e7ae69da |
|
MD5 | c2262f6ac5aea3553ae2062fc53d32cb |
|
BLAKE2b-256 | 6422260b24e6c87e12b7082f22964572cb1726b5764aac8c0284609c43e20ee7 |
关闭
哈希值 用于 cpufeature-0.2.1-cp38-cp38-musllinux_1_1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d828bd7877a1f580b8e4553729e2c8c42fbe4cb073b322104cab5a30a554ec0b |
|
MD5 | 7d2fe419adac40bfb3bd582fb906f261 |
|
BLAKE2b-256 | e852291b0d55971aa7f50d53d80deeb290d25610d3db2c8f9365c2ab2fb49aab |
关闭
哈希值 用于 cpufeature-0.2.1-cp38-cp38-musllinux_1_1_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2bbe27c1b3b125d601f3275fd4ff2fe0409163af651aa1513e40a4c22b56461b |
|
MD5 | c6c19622e8ffaad099ee6955fa682ffb |
|
BLAKE2b-256 | f2907622a98b7944e97ba2ea2b43ee13cdc62675d3426df67a06677958557aae |
关闭
哈希值 用于 cpufeature-0.2.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6cf7ee337297edfca758291308b1165fdbdff60432be55a97fb817dba12b18bc |
|
MD5 | a00caaa9dc356d816ce8cd1d0cdce8f1 |
|
BLAKE2b-256 | 50cbf50a9d0d931916ecf7c27b3a1449319471b8e25066630787d3b131d742bd |
关闭
哈希值 用于 cpufeature-0.2.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 713a7d5411d3b50eda185ac1101667bff349ea904a52e342b60a86933bc468ab |
|
MD5 | a4a0309718f35a59442c841c750cb06a |
|
BLAKE2b-256 | 277cf8a56cd115535cdadc836c33ea0855c84ec34031fabc43032487e54e3642 |
关闭
哈希值 用于 cpufeature-0.2.1-cp38-cp38-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 371dc2d5a03de0a840397043e31e19e50f9be152c27487f0cb858244eb28310e |
|
MD5 | 4851b7b016b140b369c0c8230f9886a1 |
|
BLAKE2b-256 | 3aa7b9c8d2dd7221394f9b28094759c7c1b0b0a564f905ebc24258bbcbc8e246 |