1j :ddlZddlZddlZddlZddlmZmZmZddlZ ddl Z ddl Z ddl Z ddlZdZ dZGddZejejdkd Gd d Zejd Zejd ZejZejdeejZejepe pe d GddeZejdeejZeje pe d GddeZejdeejZeje pe d GddeZejdeejZeje pe d GddeZ dS)N)__cpu_features____cpu_baseline____cpu_dispatch__c d}t|t|}}||krdSttdd} td5}|d}dddn #1swxYwYn&#t $r}t|}Yd}~nd}~wwxYw ddl}|jdgtd  } | } n&#t $r}t|} Yd}~nd}~wwxYwddl } | d |d |d | dd} td|d|d|d| )NT' /proc/cpuinfoir /bin/true1 LD_SHOW_AUXVenvz ########################################### ### Extra debugging information ########################################### ------------------------------------------- --- NumPy Detections ------------------------------------------- zk ------------------------------------------- --- SYS / CPUINFO ------------------------------------------- zl.... ------------------------------------------- --- SYS / AUXV -------------------------------------------   )prefixzFailure Detection NAME: 'z ' ACTUAL: z DESIRED: ) strrreplaceopenread Exception subprocess check_outputdictdecodetextwrapindentAssertionError) actualdesiredfname__tracebackhide__detectedfdcpuinfoerrrauxvr error_reports v/builddir/build/BUILD/cloudlinux-venv-1.0.11/venv/lib64/python3.11/site-packages/numpy/core/tests/test_cpu_features.pyassert_features_equalr* s&kk3w<z.AbstractTest.test_features..Ls%@@@!T]]1--@@@r2) r:features_groupsitemsr*rgetallfeaturesr=)r9gnamerE test_features feature_namer=npy_haves` r)rGzAbstractTest.test_featuresIs #399;; Z ZOE8@@@@x@@@M !"2"6u"="=s=?Q?QSX Y Y Y Y M D DL}}\22H'+L99H !(Hl C C C C D Dr2c|j||}t|tr ||jvS|D]}||jvrdSdS)NTF) features_maprC isinstancerfeatures_flags)r9rH map_namesr?s r)r=zAbstractTest.cpu_haveTsh%)), EE i % % 4 33 3  AD'''tt(ur2c:|||_dSr6)get_cpuinfo_itemrM)r9 magic_keys r)load_flags_cpuinfozAbstractTest.load_flags_cpuinfo]s"33I>>r2ct}td5}|D]}||sd|ddD}t |dkr?||d} dddn #1swxYwY|S)Nr c6g|]}|Sr7r-r>ss r)r@z1AbstractTest.get_cpuinfo_item..fs EEEQqwwyyEEEr2:)setr startswithr.lenunionupper)r9rQvaluesr$line flags_values r)rPzAbstractTest.get_cpuinfo_item`s / " " Jb J Jy11EE$**S!2D2DEEE {##q((#\\+a.*>*>*@*@*F*F*H*HIIF  J J J J J J J J J J J J J J J J sBB99B=B=ctjdgtd}|dD]}|dsd|dd D}t |d kr[|j|d  |_dS) Nr r r r sAT_HWCAPc6g|]}|Sr7rUrVs r)r@z0AbstractTest.load_flags_auxv..ps @@@17799@@@r2:rYrZ) rrrr.r\r]rMr^r_r)r9r'at hwcap_values r)load_flags_auxvzAbstractTest.load_flags_auxvks& }$C:P:P:PQQQ**U##  B==-- @@bhhtQ.?.?@@@K;1$$&*&9&?&?N((**113399;;''#   r2N)__name__ __module__ __qualname__rErArKr[rMr:rGr=rRrPrir7r2r)r4r4@sHOLSUUN    D D D???        r2r4 emscriptenzsThe subprocess module is not available on WASM platforms and therefore this test class cannot be properly executed.reasonceZdZejejZe j Z e j ddZe j ddZeedddZdeDZeedkrdnedZeedkrdnedZdZejd d Zd Z dd ZdZdZej !dddgdZ"ej #e dej !dddgdZ$ej #e ddZ%dZ&dS)TestEnvPrivationNPY_ENABLE_CPU_FEATURESNNPY_DISABLE_CPU_FEATUREST)cwdcapture_outputtextcheckc,g|]}t||Sr7)r)r>feats r)r@zTestEnvPrivation.s31A$1G r2rz def main(): from numpy.core._multiarray_umath import __cpu_features__, __cpu_dispatch__ detected = [feat for feat in __cpu_dispatch__ if __cpu_features__[feat]] print(detected) if __name__ == "__main__": main() )autousec||d}|dz}||j||_dS)Nruntime_test_scriptz_runtime_detect.py)mktemp write_textSCRIPTfile)r9tmp_path_factoryrs r) setup_classzTestEnvPrivation.setup_classsA&&'<== $$  $$$ r2c`tjtj|jgfd|ji|jS)Nr)rrunsys executablerrSUBPROCESS_ARGSr8s r)_runzTestEnvPrivation._runs>~ ^TY '" r2Failed to generate errorc> |J|#tj$rm}d|d|j}t j||js J|d|d|j}t j||js J|Yd}~dSd}~wwxYw)NFz Expected: z Got: zExpected error of type: z; see full error: )rrCalledProcessErrorstderrresearch)r9msgerr_type no_error_msgeassertion_messages r) _expect_errorzTestEnvPrivation._expect_errors ' IIKKK ', & &5, D D D CS C C C C 9S!(++ > >-> > >+&8&&8&& 9Xqx00 C C2C C C0 C C C C C C Ds BA"BBcLtj|_dS)z$Ensure that the environment is resetN)osenvironcopyrr8s r) setup_methodzTestEnvPrivation.setup_methods:??$$r2c>|}t|j}|tjd|d}||jd<|}t|j}t ||hksJt|dkrtjdd||jd<|}t|j}t |t |ksJdS)z Ensure that when selecting `NPY_ENABLE_CPU_FEATURES`, only the features exactly specified are dispatched. Nz6No dispatchable features outside of baseline detected.rrrrZz'Only one non-baseline feature detected.,) rr1stdoutpytestskiprr[r]join)r9r0non_baseline_featuresfeatureenabled_featuress r)test_runtime_feature_selectionz/TestEnvPrivation.test_runtime_feature_selectionsiikk -cj 9 9 ( KH   (*/6*+iikk(44#$$ 1111 $ % % ) ) KA B B B/2hh7L.M.M*+iikk(44#$$,A(B(BBBBBr2zenabled, disabled)rr)rsamecb||jd<||jd<d}d}|||dS)zk Ensure that when both environment variables are set then an ImportError is thrown rrrsz9Both NPY_DISABLE_CPU_FEATURES and NPY_ENABLE_CPU_FEATURES ImportErrorNrr)r9enableddisabledrrs r)test_both_enable_disable_setz-TestEnvPrivation.test_both_enable_disable_setsD/6*+/7+,I  3)))))r2zANPY_*_CPU_FEATURES only parsed if `__cpu_dispatch__` is non-emptyrnactionENABLEDISABLEczd}d|z|jd|d<d|d|dzd|d }d }|||d S) z Test that an error is thrown if the environment variables are too long to be processed. Current limit is 1024, but this may change later. itNPY_ _CPU_FEATURESz$Length of environment variable 'NPY_z_CPU_FEATURES' is rYz, only z accepted RuntimeErrorNr)r9rMAX_VAR_LENGTHrrs r)test_variable_too_longz'TestEnvPrivation.test_variable_too_longs14~1E----. D6 D D! D D*8 D D D " 3)))))r2c|jtjd|j}||jd<d|d}d}|||dS)z Test that a RuntimeError is thrown if an impossible feature-disabling request is made. This includes disabling a baseline feature. N.There are no unavailable features to test withrsz You cannot disable CPU feature 'z1', since it is part of the baseline optimizationsr) BASELINE_FEATrrrr)r9 bad_featurerrs r)test_impossible_feature_disablez0TestEnvPrivation.test_impossible_feature_disable sq   % KH I I I( /:+, 1{ 1 1 1 " 3)))))r2c|jtjd|j}||jd<d|d}d}||||d|j}||jd<d|d}|||dS)z Test that a RuntimeError is thrown if an impossible feature-enabling request is made. This includes enabling a feature not supported by the machine, or disabling a baseline optimization. Nrrrz!You cannot enable CPU features \(z1\), since they are not supported by your machine.rr,)UNAVAILABLE_FEATrrrrr)r9rrrfeatss r)test_impossible_feature_enablez/TestEnvPrivation.test_impossible_feature_enable%s  ( KH I I I+ .9*+ 6 6 6 6 " 3)))66$"466.3*+ 1 1 1 1  3)))))r2)r)'rjrkrlpathlibPath__file__parentresolvertrrrrpop_enable_disablerrrunavailable_featsr]rrrrrfixturerrrrrmark parametrizerskipifrrrr7r2r)rqrqvsc ',x ' / / 1 1C *//  Cjnn6==Gz~~8$??Hds4d$OOOO)%&&!++ q ! C 011Q66DD= * [  .***"*****r2rqlinuxcygwinz^(amd64|x86|i386|i686)zOnly for Linux and x86c eZdZgdZegdgdgdgdgdgdgd Zed d d d dddddd ZdZdS)Test_X86_Features)MMXSSESSE2SSE3SSSE3SSE41POPCNTSSE42AVXF16CXOPFMA4FMA3AVX2AVX512FAVX512CDAVX512ERAVX512PF AVX5124FMAPS AVX5124VNNIWAVX512VPOPCNTDQAVX512VLAVX512BWAVX512DQ AVX512VNNI AVX512IFMA AVX512VBMI AVX512VBMI2 AVX512BITALG AVX512FP16)rrrr)rrrrrrr)rrrrr)rrrrrr)rrrrrrr) rrrrrrrrrrr) rrrrrrrrrrrr) AVX512_KNL AVX512_KNM AVX512_SKX AVX512_CLX AVX512_CNL AVX512_ICL AVX512_SPRPNISSE4_1SSE4_2FMA AVX512_VNNI AVX512_BITALG AVX512_VBMI2 AVX512_4FMAPS AVX512_4VNNIWAVX512_VPOPCNTDQ) rrrrrrrrrrc0|ddS)Nflags)rRr8s r)r:zTest_X86_Features.load_flagscs (((((r2N)rjrkrlrErrArKr:r7r2r)rrDsHdDDD999PPP^^^$$$ddd$$$O4 (( N$?TfL )))))r2rz^(powerpc|ppc)64zOnly for Linux and Powerc8eZdZgdZedddZdZdS)Test_POWER_Features)VSXVSX2VSX3VSX4 ARCH_2_07 ARCH_3_00ARCH_3_1)rrrc.|dSr6rir8s r)r:zTest_POWER_Features.load_flagsl r2N)rjrkrlrErrKr:r7r2r)rrgsD...H4[{LLLLr2rz^(s390x)zOnly for Linux and IBM ZceZdZgdZdZdS)Test_ZARCH_Features)VXVXEVXE2c.|dSr6r r8s r)r:zTest_ZARCH_Features.load_flagsvr r2N)rjrkrlrEr:r7r2r)r r qs0%$$Hr2r z^(arm|aarch64)zOnly for Linux and ARMc>eZdZgdZeddgddgZdZdS)Test_ARM_Features)NEONASIMDFPHPASIMDHPASIMDDPASIMDFHMrHALFVFPV4) NEON_FP16 NEON_VFPV4cV|d|d}|r0tdtt |zdknd}t jdts|rtddd|_ dStd |_ dS) NFeatureszCPU architecture0rz^(aarch64|AARCH64)r)rrr)AESSHA1SHA2PMULLCRC32)r) rRrPintnextiterrmatchmachinerrK)r9arch is_rootfs_v8s r)r:zTest_ARM_Features.load_flagss  +++$$%7888<Cs3tDJJ///00144! H)7 3 3 |  $7'!!!D   !%@ !!!D   r2N)rjrkrlrErrAr:r7r2r)rr{s\Hdf%g&Or2r)!rplatformrrnumpy.core._multiarray_umathrrrnumpynprrrr*r1r4rrrqr\is_linux is_cygwinr+r* IGNORECASEis_x86ris_powerris_zarchr is_armrr7r2r)r9s_   -0-0-0^)))44444444lLL  BA*A*A*A*A*A*A*A*F < " "7 + + L # #H - - 8    28,gr} E E  Y-v:6N))))) )))> 28& ? ?L0L9STT,UT 28J 7 7L0L577,77 "GR] ; ;L.J7OPP QPr2