簡體   English   中英

如何檢查我的已安裝的numpy是否使用SSE / SSE2指令集編譯?

[英]How can I check if my installed numpy is compiled with SSE/SSE2 instruction set?

如何檢查我的已安裝版本的numpy是否使用SSE / SSE2指令集編譯? 我知道numpy的某些部分正在使用BLAS,如何檢查BLAS呢?

我認為一種方法是在numpy.so文件中使用objdump(如果你在linux下),grep用於特定於sse的指令。

對於SSE3( http://en.wikipedia.org/wiki/SSE3 ):

objdump -d  /usr/lib/pyshared/python2.7/numpy/core/*.so | grep -i MOVDDUP

對於SSE2( http://fr.wikipedia.org/wiki/Jeu_d%27instructions_x86#Instructions_SSE2 ):

objdump -d  /usr/lib/pyshared/python2.7/numpy/core/*.so | grep -i ADDPD

如果使用grep獲得一些結果,則意味着二進制文件已使用SSE標志進行編譯。

看一眼:

import numpy.distutils.system_info as sysinfo
sysinfo.show_all()

這將打印出有關numpy編譯的所有信息。

首先,找到numpy / core .so文件的路徑:

python -c "import numpy, os; print (os.path.join(os.path.dirname(numpy.__file__), 'core/*.so'))"
#  Output:  /usr/local/lib/python2.7/dist-packages/numpy/core/*.so 

然后將numpy的核心反編譯為文件numpy.asm:

objdump -d /usr/local/lib/python2.7/dist-packages/numpy/core/*.so > numpy.asm

然后找到所有 SSE指令:

gawk 'BEGIN { IGNORECASE = 1 } /\<(ADDPS|ADDSS|ANDNPS|ANDPS|CMPPS|CMPSS|COMISS|CVTPI2PS|CVTPS2PI|CVTSI2SS|CVTSS2S|CVTTPS2PI|CVTTSS2SI|DIVPS|DIVSS|LDMXCSR|MAXPS|MAXSS|MINPS|MINSS|MOVAPS|MOVHLPS|MOVHPS|MOVLHPS|MOVLPS|MOVMSKPS|MOVNTPS|MOVSS|MOVUPS|MULPS|MULSS|ORPS|RCPPS|RCPSS|RSQRTPS|RSQRTSS|SHUFPS|SQRTPS|SQRTSS|STMXCSR|SUBPS|SUBSS|UCOMISS|UNPCKHPS|UNPCKLPS|XORPS|PAVGB|PAVGW|PEXTRW|PINSRW|PMAXSW|PMAXUB|PMINSW|PMINUB|PMOVMSKB|PSADBW|PSHUFW)\>/' numpy.asm

查找所有SSE2指令(MOVSD和CMPSD除外,這些指令最初是在80386中引入的):

gawk 'BEGIN { IGNORECASE = 1 } /\<(ADDPD|ADDSD|ANDNPD|ANDPD|CMPPD|COMISD|CVTDQ2PD|CVTDQ2PS|CVTPD2DQ|CVTPD2PI|CVTPD2PS|CVTPI2PD|CVTPS2DQ|CVTPS2PD|CVTSD2SI|CVTSD2SS|CVTSI2SD|CVTSS2SD|CVTTPD2DQ|CVTTPD2PI|CVTPS2DQ|CVTTSD2SI|DIVPD|DIVSD|MAXPD|MAXSD|MINPD|MINSD|MOVAPD|MOVHPD|MOVLPD|MOVMSKPD|MOVUPD|MULPD|MULSD|ORPD|SHUFPD|SQRTPD|SQRTSD|SUBPD|SUBSD|UCOMISD|UNPCKHPD|UNPCKLPD|XORPD|MOVDQ2Q|MOVDQA|MOVDQU|MOVQ2DQ|PADDQ|PMULUDQ|PSHUFHW|PSHUFLW|PSHUFD|PSLLDQ|PSRLDQ|PUNPCKHQDQ|PUNPCKLQDQ)\>/' numpy.asm

查找所有SSE3說明:

gawk 'BEGIN { IGNORECASE = 1 } /\<(ADDSUBPD|ADDSUBPS|HADDPD|HADDPS|HSUBPD|HSUBPS|MOVDDUP|MOVSHDUP|MOVSLDUP|LDDQU|FISTTP)\>/' numpy.asm

查找所有SSSE3說明:

gawk 'BEGIN { IGNORECASE = 1 } /\<(PSIGNW|PSIGND|PSIGNB|PSHUFB|PMULHRSW|PMADDUBSW|PHSUBW|PHSUBSW|PHSUBD|PHADDW|PHADDSW|PHADDD|PALIGNR|PABSW|PABSD|PABSB)\>/' numpy.asm

查找所有SSE4說明:

gawk 'BEGIN { IGNORECASE = 1 } /\<(MPSADBW|PHMINPOSUW|PMULLD|PMULDQ|DPPS|DPPD|BLENDPS|BLENDPD|BLENDVPS|BLENDVPD|PBLENDVB|PBLENDDW|PMINSB|PMAXSB|PMINUW|PMAXUW|PMINUD|PMAXUD|PMINSD|PMAXSD|ROUNDPS|ROUNDSS|ROUNDPD|ROUNDSD|INSERTPS|PINSRB|PINSRD|PINSRQ|EXTRACTPS|PEXTRB|PEXTRD|PEXTRW|PEXTRQ|PMOVSXBW|PMOVZXBW|PMOVSXBD|PMOVZXBD|PMOVSXBQ|PMOVZXBQ|PMOVSXWD|PMOVZXWD|PMOVSXWQ|PMOVZXWQ|PMOVSXDQ|PMOVZXDQ|PTEST|PCMPEQQ|PCMPGTQ|PACKUSDW|PCMPESTRI|PCMPESTRM|PCMPISTRI|PCMPISTRM|CRC32|POPCNT|MOVNTDQA|EXTRQ|INSERTQ|MOVNTSD|MOVNTSS|LZCNT)\>/' numpy.asm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM