Numpy: 1.19.0 рдЕрдВрдХ рдХреЗ рд╕рд╛рде Azure CI (рд╡рд┐рдВрдбреЛрдЬ рдЙрджрд╛рд╣рд░рдг) рдкрд░ рддреНрд░реБрдЯрд┐

рдХреЛ рдирд┐рд░реНрдорд┐рдд 20 рдЬреБрд▓ре░ 2020  ┬╖  53рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: numpy/numpy

рдирдорд╕реНрддреЗ,
рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ Windows рдЙрджрд╛рд╣рд░рдг ( vmImage: 'windows-2019' ) рдХреЗ рд╕рд╛рде Azure рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдкрд░ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╕рдордп рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдереЛрдбрд╝реА рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЦреБрджрд╛рдИ рдХрд░реЗрдВ (рдпрд╣ рд╡рд╛рд░реНрддрд╛рд▓рд╛рдк рджреЗрдЦреЗрдВ https://developercommunity.visualstudio.com/content/problem/1102472/azure-pipeline-error-with-windows-vm.html?childnoView=1119179#comment-1119179) рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрдм рд╣рдо рд╕реНрдерд╛рдкрд┐рдд рдЙрддреНрдкрдиреНрди numpy 1.19.0 рдХреЗ рдмрдЬрд╛рдп numpy 1.8.5 - рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдБ рдХрд┐ numpy 1.19.0 20 рдЬреВрди рдХреЛ PyPI рдкрд░ рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЗрд╕ рдмрд╛рд░ рдЬрдм рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд╡рд┐рдлрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╣реИ ред рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП numpy 1.8.5 рдкрд╣рд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдлрд▓ рдмрдирд╛рддрд╛ рд╣реИ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИред

рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рджреВрд╕рд░реЛрдВ рдиреЗ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдЦрддрдирд╛ рдореБрджреНрджрд╛ рд╣реИ ... рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ)ред

рдЖрдкрдХреЗ рдЬрд╡рд╛рдм рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░ рд░рд╣реЗрдЧрд╛,
рдФрд░ рдореЗрд░реЗ azure рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕реЗрдЯрдЕрдк рдореЗрдВ рдХреЛрдИ рднреА рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рд╕рдиреНрдирддрд╛ рдпрджрд┐ рд╡рд╣ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдирд┐рд╡рд╛рд░рдг рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢:

рдпрд╣ рдмрд┐рд▓реНрдб рд╕реБрдиреНрди 1.18.5 рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: https://dev.azure.com/matteoravasi/PyLops/_build/results?buildId=46&view=logs&j=011e1ec8-6569-56969-4f06-baf193d1351e
1.19.0 рдЕрдВрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдкреНрд░рддрд┐рдмрджреНрдз рдкрд░ рдПрдХ рдирд┐рд░реНрдорд╛рдг рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ: https://dev.azure.com/matteoravasi/PyLops/_build/results?buildId=43&view=results

рддреНрд░реБрдЯрд┐ рдмрд╣реБрдд рдЧреВрдврд╝ рд╣реИ, рдЬреЛ рдореИрдВрдиреЗ рдКрдкрд░ рдмрддрд╛рдпрд╛ рд╣реИ рд╡рд╣ рдЕрдзрд┐рдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рд╡реИрд╕реЗ рднреА рд╣реИ:

2020-07-06T13:56:01.6879900Z Windows fatal exception: Current thread 0xaccess violation00001798
2020-07-06T13:56:01.6880280Z 
2020-07-06T13:56:01.6880589Z  (most recent call first):
2020-07-06T13:56:01.6880973Z   File "<__array_function__ internals>", line 6 in vdot
2020-07-06T13:56:05.3412520Z ##[debug]Exit code: -1073741819

рд╕рднреА 53 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреНрдпрд╛ рдпрд╣ рд▓рдЧрд╛рддрд╛рд░ рдпрд╛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ? рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдВрдбреЛрдЬрд╝ рдбреЗрд╡рд▓рдкрд░ рд╣реИ рдЬреЛ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдирдорд╕реНрддреЗ,
рдзрдиреНрдпрд╡рд╛рдж!

рдпрд╣ рд▓рдЧрд╛рддрд╛рд░ рдХрдИ рдмрд╛рд░ рд╡рд┐рдлрд▓ рд╣реБрдЖ .. рдЙрд╕ рд╕рдордп рдореИрдВрдиреЗ рдПрдЬрд╝реНрдпреЛрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдкреВрдЫрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рдерд╛ (рдореЗрд░рд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдиреБрдорд╛рди рдерд╛ рдХрд┐ рд╢рд╛рдпрдж рдЙрдирдХреЗ рд╡реАрдПрдордПрд╕ рд╕реЗрдЯрдЕрдк рдореЗрдВ рдХреБрдЫ рдмрджрд▓ рдЧрдпрд╛ рдерд╛)ред

рдЗрд╕ рд▓рд┐рдВрдХ рдореЗрдВ рдЪрд░реНрдЪрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ Microsoft рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд╕рд╛рде рдЪрд░реНрдЪрд╛ рдХреА рдереА рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕реБрдиреНрди рдХрд░ рд╕рдХрддрд╛ рдерд╛: https://developercommunity.visualstudio.com/content/problem/1102472/azure-pipeline-error-ith-windows-vm.html? childToView = 1119179 # рдЯрд┐рдкреНрдкрдгреА -1119179

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореЗрд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдРрд╕рд╛ рд╡реНрдпрдХреНрддрд┐ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдВрдбреЛрдЬрд╝ рдорд╢реАрди рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХреЗ :(

рдлрд┐рд░ рд╣рдореЗрдВ рдкреНрд░рдЬрдирди рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдЪрд░рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА

Azure- рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ.рдПрд▓рдПрдо рдХрд╛рдо рдХрд░реЗрдЧрд╛?

рдпрд╣рд╛рдБ рд╣рдо рдЙрд╕ рд╕рдордп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (https://github.com/equinor/pylops/blob/master/azure-pipelines.yml) рдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА ... рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдкрд╛рдпрдерди 3.7 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕реБрдВрджрд░ рдорд╛рдирдХ рд╕реЗрдЯрдЕрдк рд╣реИ , рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ- dev.txt рдлрд╝рд╛рдЗрд▓ (https://github.com/equinor/pylops/blob/master/requirements-dev.txt) рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдФрд░ рдлрд┐рд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдирд╛ред

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдЕрдЧрд░ рдореИрдВ рдЗрд╕ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ 1.18.5 рдкрд░ рдмрд▓ рджреЗрддрд╛ рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рдЪрд▓рддрд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдирдпрд╛ 1.19 рд╣реИ

Azure рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рдЫрд╡рд┐ рдХрд╛ рд╡рд┐рдВрдбреЛрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдореБрдЦ рдФрд░ рдорд╛рдореВрд▓реА рд╕рдВрд╕реНрдХрд░рдг рдХреНрдпрд╛ рд╣реИ? рдЕрд░реНрдерд╛рдд, systeminfo рд▓рд┐рдП OS Version systeminfo рдкреНрд░рд┐рдВрдЯ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ?

рдореИрдВ рдпрд╣рд╛рдБ Azure рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП Azure VMs рдХрд╛ рд╡рд┐рд╡рд░рдг рдкрд╛ рд╕рдХрддрд╛ рд╣реВрдВ: https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs_yaml рдФрд░ рд▓рд┐рдВрдХ рд╕реНрдерд╛рдкрд┐рдд рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ https://github.com/actions/virtual-en рдПрдиреНрд╡рд╛рдпрд░рдореЗрдВрдЯ

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЬрд╝реВрд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдкрд░ systeminfo рдХреИрд╕реЗ рдЪрд▓рд╛рдПрдВ, рдХреЛрдИ рд╕реБрдЭрд╛рд╡?

рдпрд╣ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЯрд░реНрдорд┐рдирд▓ рддрдХ рдбрдВрдк рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕реЗ рдХрдорд╛рдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдиреЗ рд░рди рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдк рдРрд╕рд╛ рдкреАрдЖрд░ рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕реАрдЖрдИ рдкрд░ рдЪрд▓рддрд╛ рд╣реИ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡рд╣ рдХреНрдпрд╛ рдХрд╣рддрд╛ рд╣реИред рдореИрдВ рдкреВрдЫ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ 19041 рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рдкрд╛рдЗрдк рдиреНрдпреВрдкреА рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдореБрджреНрджреЗ рдереЗред

рдЙрддреНрддрд░ рджреВрд╕рд░реА рдХрдбрд╝реА рдореЗрдВ рдерд╛:

OS рд╕рдВрд╕реНрдХрд░рдг: 10.0.17763 рдмрд┐рд▓реНрдб 1282

рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдХреЛрдИ рдлрд▓ рдирд╣реАрдВ рд╣реИред

рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдирд╡реАрдирддрдо рдкрд╛рдЗрдк рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡рдд: рдЙрд╕реА рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ?

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ (рд╕рдВрднрд╡рддрдГ) 19041 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рд╡рд┐рдВрдбреЛрдЬ рдмрдЧ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдк рдмрд╣реБрдд рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИред

рдпрд╣ Conda NumPy рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ NumPy рдХреЛ рдкрд╛рдЗрдк рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ Windows рдФрд░ OpenBlas рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдорд╕реНрдпрд╛ рд▓рдЧрддреА рд╣реИред

рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ :) рдореБрдЭреЗ рдПрдХ рдИрдореЗрд▓ рдорд┐рд▓рд╛ рд╣реИ рдХрд┐ 1.9.1 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВ Azure рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдЕрдм рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧреА рдФрд░ рджреЗрдЦреЗрдЧреА рдХрд┐ рдХреНрдпрд╛ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдЖрдкрдХреЛ рдмрддрд╛рдПрдЧреА

1.19.1 https://dev.azure.com/matteoravasi/PyLops/_build/results?buildId=45&view=logs&j=50448a2f-9550-51a0.b6c4-5ec64224dd81&t=a6a6804f-7af1-5-5.15.11.15.15 рдХреЗ рд╕рд╛рде рдЕрднреА рднреА рд╡рд┐рдлрд▓ рд╣реИред :(

OpenBlas рдореЗрдВ рдПрдХ рдмрдЧред

рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╣реИ:

import numpy as np
nr = 12000
v = np.random.randn(nr) + 1j * np.random.randn(nr)
np.vdot(v, v)
# also access violations
v @ v
# also access violations

рдХреЛрдИ рдкреНрд░рддреАрдХ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ:

Exception thrown at 0x0000000068DBB8F0 (libopenblas.NOIJJG62EMASZI6NYURL6JBKM4EVBGM7.gfortran-win_amd64.dll)
in python.exe: 0xC0000005: Access violation reading location 0x0000000000000000.

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдмрдЧ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рдгреА рдХреЛ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (10k рдкрд╛рд╕, 12k рдирд╣реАрдВ)ред

рддреНрд╡рд░рд┐рдд рдЬрд╛рдВрдЪ:

$env:OPENBLAS_VERBOSE=2
$env:OPENBLAS_CORETYPE=Prescott

рдЧреБрдЬрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд░реНрдиреЗрд▓ ( Zen ), рд╕рд╛рде рд╣реА Haswell рдФрд░ Sandybridge , рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрд▓реНрд▓рдВрдШрди рд╣реИред

рд╢рд╛рдпрдж рдЙрд╕ рд╕реБрдиреНрди HEAD рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ, рдЬреЛ рдПрдХ рдирдП OpenBLAS 0.3.10 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рднреА рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рдпрд╛ рд╢рд╛рдпрдж рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рдпрд╛ рдерд╛?

@ рдордЯреНрдЯрд┐рдк рдирдВред рдЖрдк pip install git+https://github.com/numpy/numpy рд╕рд╛рде рд╕реАрдзреЗ рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдКрдмрдбрд╝ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ? рдореИрдВ рдЗрд╕реЗ рдПрдХ рдХреЛрд╢рд┐рд╢ рджреЗ рд╕рдХрддрд╛ рд╣реВрдБ :)

рдФрд░ рдЖрдкрдХреЗ рдкреНрд░рд╢реНрди рдкрд░ @bashtage (рдХреНрдпрд╛ рдЕрд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдг рд╕рднреА рдореЗрдВ рд╕реБрдВрдмрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ? рд╕реБрдВрдмрд╛ 0.50 рдореЗрдВ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рдХреБрдЫ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдПрдХ рдмрдЧ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЕрдиреБрдкрд▓рдмреНрдз рдЖрдВрддрд░рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рджреБрд░реНрдШрдЯрдирд╛рдПрдВ рд╣реБрдИрдВ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧреАрдВред рдИрдореЗрд▓ рд▓реЗрдХрд┐рди рдЗрд╕ рдереНрд░реЗрдб рдореЗрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ... рдкрд░реАрдХреНрд╖рдг рдЬреЛ рдХреНрд░реИрд╢ рдХрд░рддрд╛ рд╣реИ рд╡рд╣ numpy рдФрд░ pyfftw рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдпрд╣ рдЕрдЪрд╛рдирдХ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрддрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕ рд▓рд╛рдЗрди рдкрд░ рдХреНрд░реИрд╢ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ pyfftw рдмрд┐рд▓реНрдХреБрд▓ рдирдВрдмрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдЗрд╕рдХреА рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ рд╣реИ

рдореИрдВрдиреЗ рдмрд╕ GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╕реАрдзреЗ NumPy рдХреА HEAD рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкреВрд░рд╛ рд╣реЛрдиреЗ рддрдХ рдЪрд▓рддрд╛ рд╣реИ - рдХреЛрдИ рдЕрдЪрд╛рдирдХ рджреБрд░реНрдШрдЯрдирд╛ рдирд╣реАрдВ: https://dev.azure.com/matteoravasi/PyLops/_build/res/??II=54&view=logs&j=j= 011e1ec8-6569-5e69-4f06-baf193d1351e рдФрд░ рдЯреА = bf6cf4cf-6432-59cf-d384-6b3bcf32ede2

рджрд┐рд▓рдЪрд╕реНрдк рд░реВрдк рд╕реЗ рдХреБрдЫ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ NumPy рд╣реИ, рдареАрдХ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд▓рдЧ рд░рд╣реЗ рд╣реИрдВ (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВ рдирд╣реАрдВ) рдФрд░ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рд╕рднреА OS рдХреЗ рд▓рд┐рдП рд╡рд┐рдлрд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рдПрдХ рдкреВрд░реНрдг рджреБрд░реНрдШрдЯрдирд╛ рдирд╣реАрдВ рд╣реИ ...

рд░рд╛рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ:

pip install -i https://pypi.anaconda.org/scipy-wheels-nightly/simple numpy

рдореИрдВ рд╕рд┐рд░реНрдл GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╕реАрдзреЗ NumPy рдХреЗ HEAD рдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

рдЬрдм рддрдХ рдЖрдк рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВ, рддрдм рддрдХ рдЗрд╕рдореЗрдВ рдУрдкрдирдмреНрд▓рд╕ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЖрдкрдХреЛ pip install git+https://github.com/numpy/numpy.git рд╕рд╛рде рдПрдХ рдзреАрдорд╛, рд╕рд╛рдорд╛рдиреНрдп BLAS рдорд┐рд▓рддрд╛ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо 1.19.2 рдХреЗ рд▓рд┐рдП OpenBLAS рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ Azure рдкрд░ рдирд╡реАрдирддрдо --pre рдмрд┐рд▓реНрдб (numpy-1.20.0.dev0 + a0028bc) рдкрд░ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:

Current thread 0x000003d0 (most recent call first):
  File "<__array_function__ internals>", line 5 in dot
  File "D:\a\1\s\mne\minimum_norm\inverse.py", line 732 in _assemble_kernel

рд╕рд╡рд╛рд▓ рдореЗрдВ рд▓рд╛рдЗрди рд╕рд┐рд░реНрдл рд╣реИ:

K = np.dot(eigen_leads, trans)

рдпрджрд┐ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдПрд░реЗ рдХреЛ рдбрд┐рд╕реНрдХ рдкрд░ рд╕рд╣реЗрдЬрдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдЬрд╝реНрдпреЛрд░ рдЖрд░реНрдЯрд╡рд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдЬреЛ рджрд┐рдЦрддрд╛ рд╣реИред рдЖрдк рдЙрд╕реА рдкреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдореИрдВрдиреЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛ред

рдЖрдк рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ

$env:OPENBLAS_VERBOSE=2

рдпрд╛

set OPENBLAS_VERBOSE=2

рдЖрдкрдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рд╕ рдХрд░реНрдиреЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдпрджрд┐ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдПрд░реЗ рдХреЛ рдбрд┐рд╕реНрдХ рдкрд░ рд╕рд╣реЗрдЬрдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдЬрд╝реНрдпреЛрд░ рдЖрд░реНрдЯрд╡рд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдпрд╣ рд╢рд╛рдпрдж dtypes рдФрд░ рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред

рдареАрдХ рд╣реИ, рд╕рд┐рд░реНрдл рдПрдХ рдЦрд░рд╛рдмреА рдХреЗ рдПрдХ рд░рди рдкрд░ рдкреБрди: рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рдЦрд╕рд░рд╛ + рдЦреБрд░рдкреА + рдорд╛рдЯрдкреНрд▓реЛрдЯрд▓рд┐рдм + рдкрд╛рдЗрд╕реНрдЯреЗрд╕реНрдЯ (рдФрд░ рдбрд┐рдкреНрд╕) рд╣реИ рдЬреЛ рдореИрдЯреНрд░рд┐рд╕ рдХреЛ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХрд╛ рдЯреИрдм рд╣реИ:

https://dev.azure.com/mne-tools/mne-python/_build/results?buildId=8330&view=artifacts&type=publishedArtifacts

рдЕрдВрддрд┐рдо .npz рдХрд╛ рдЕрд╕рдлрд▓ (27 рдПрдордмреА) рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдпрд╣ рдареАрдХ рд╣реИ:

>>> import numpy as np
>>> data = np.load('1595525222.9485037.npz')
>>> np.dot(data['a'], data['b']).shape
(23784, 305)
>>> data['a'].shape, data['a'].dtype, data['b'].shape, data['b'].dtype
((23784, 305), dtype('>f4'), (305, 305), dtype('float64'))
>>> data['a'].flags, data['b'].flags
(  C_CONTIGUOUS : False
  F_CONTIGUOUS : True
  OWNDATA : False
  WRITEABLE : True
  ALIGNED : True
  WRITEBACKIFCOPY : False
  UPDATEIFCOPY : False
,   C_CONTIGUOUS : True
  F_CONTIGUOUS : False
  OWNDATA : True
  WRITEABLE : True
  ALIGNED : True
  WRITEBACKIFCOPY : False
  UPDATEIFCOPY : False
)

OPENBLAS_VERBOSE рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдмрд╛рд░ рдореИрдВ pytest -s рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╛рд╕ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдпрд╣ рдЕрднреА рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ ...

рдордЬрд╝реЗрджрд╛рд░, рдореИрдВ рдЗрд╕реЗ рдЕрдм рдКрдкрд░ рджрд┐рдП рдЧрдП рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЗ рд╕рд╛рде рднреА рджреЗрдЦрддрд╛ рд╣реВрдВред

рдЕрдЧрд░ рдореИрдВ OPENBLAS_CORETYPE рдкреНрд░реЗрд╕реНрдХреЙрдЯ рдпрд╛ рдиреЗрд╣реЗрд▓рдо рдХреЛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ред рдореИрдВ рдЗрд╕реЗ рдЬрд╝реЗрди, рд╕реИрдВрдбреАрдмреНрд░рд┐рдЬ рдФрд░ рд╣рд╕рд╡реЗрд▓ рдХреЗ рд╕рд╛рде рджреЗрдЦрддрд╛ рд╣реВрдВред

рдореИрдВ Windows рдкрд░ рдЖрдкрдХреЗ npz рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рдореИрдВ Windows рдкрд░ рдЖрдкрдХреЗ npz рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

Azure рдкрд░ FWIW рдореИрдВ рдЗрд╕реЗ рд╕реЗрд╡-рд▓реЛрдб-рд░рд╛рдЙрдВрдб-рдЯреНрд░рд┐рдкреНрдб рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдм рдпрд╣рд╛рдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреЛрдб рдореЗрдВ рджреВрд╕рд░реА-рдЯреВ-рд▓рд╛рд╕реНрдЯ рд▓рд╛рдЗрди рдкрд░ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:

    import mne, os.path as op, time
    fname = op.join(op.dirname(mne.__file__), '..', 'bad', f'{time.time()}.npz')
    np.savez_compressed(fname, a=eigen_leads, b=trans)
    print(eigen_leads.flags)
    print(trans.flags)
    data = np.load(fname)
    np.dot(data['a'], data['b'])  # <-- fails here
    K = np.dot(eigen_leads, trans)   # <-- used to fail here before I added the above lines

рддреЛ np.savez / np.load рдХрджрдореЛрдВ рдХреЗ рдХрд╛рд░рдг Azure рдЕрдВрдд рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рднреА рдирд╣реАрдВ рдЦреЛрдпрд╛ рд╣реИред

рдореИрдВ OPENBLAS_CORETYPE: 'nehalem' рд╕рд╛рде рдПрдХ рд░рди рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ред

рддреЛ рд╢рд╛рдпрдж рдпрд╣рд╛рдБ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреАрдбрд╝реЗ рд╣реИрдВ?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, OPENBLAS_VERBOSE: 2 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВ рдирд╣реАрдВ

рд╡рд░реНрдмреЛрдЬрд╝ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рдХрдорд╛рдВрдб рдЬреЛрдбрд╝реЗрдВ

рдЕрдЬрдЧрд░-рд╕реА "рдЖрдпрд╛рдд рд╕реБрдиреНрди"

Pytest рд╢рд╛рдпрдж рдпрд╣ рдЦрд╛ рд░рд╣рд╛ рд╣реИ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред

рдереВ, рдЬреБрд▓рд╛рдИ 23, 2020, 19:04 рдПрд░рд┐рдХ рд▓рд╛рд░реНрд╕рди рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, OPENBLAS_VERBOSE: 2 рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ, рдирд╣реАрдВ
рдЕрд╡рд╢реНрдп рдХреНрдпреЛрдВ

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/numpy/numpy/issues/16913#issuecomment-6631586060 , рдпрд╛
рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд
https://github.com/notifications/unsubscribe-auth/ABKTSRNS5QRT6CC3ZQ6DQYDR5B3TTANCNFSM4PCRVE6A
ред

рдпрд╣ рдЖрджреЗрд╢ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рднреА рдореБрдЭреЗ рдХреЛрдИ рдХреНрд░рд┐рдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ:

OPENBLAS_VERBOSE=2 python -c "import numpy as np, glob; data = np.load(glob.glob('bad/*.npz')[0]); a, b = data['a'], data['b']; print(np.dot(a, b).shape)"

рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдореЗрд░рд╛ рд╕рд┐рд╕реНрдЯрдо OpenBLAS рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рд╡рд┐рдлрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП Azure рдХреЛ рдПрдХ рдХрдорд┐рдЯ рдХрд░реВрдВрдЧрд╛ред

Azure рдкрд░ OPENBLAS_VERBOSE рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ "рдХреЛрд░: рд╣реИрд╕рд╡реЗрд▓"ред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рд╕рд╣реА рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ред

рдореИрдВрдиреЗ https://github.com/xianyi/OpenBLAS/issues/2732 рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХреА рд╕реВрдЪрдирд╛ рджреА рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ рдпрд╣ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, https://github.com/xianyi/OpenBLAS/issues/2728 рджреЗрдЦреЗрдВ ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИред

@mattip рдХреНрдпрд╛ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ MacPython / openblas-libs # 35 рджреНрд╡рд╛рд░рд╛ рдмрдВрдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рд╣рдореЗрдВ рдЕрдЧрд▓реЗ рд╕рд╛рдкреНрддрд╛рд╣рд┐рдХ рдирд┐рдХрд▓рдиреЗ рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ?

@charris рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдЕрднреА рднреА рдЦреБрд▓рд╛ рд╣реИ, рдФрд░ рдПрдХ рдмреИрдХрдкреЛрд░реНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдХреНрдпрд╛ рдХреЛрдИ рд░рд┐рдкреНрд░реЛрдбреНрдпреВрд╕рд░ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдУрдкрди рдУрдкрдирдмреАрдПрдПрд╕ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

git add remote mattip https://github.com/mattip/numpy.git
git fetch mattip  issue-16913
git checkout issue-16913
python tools/openblas_support.py
# copy the output openblas.a to a local directory and make sure numpy uses it
mkdir openblas
copy /path/to/openblas.a openblas
set OPENBLAS=openblas
python -c "from tools import openblas_support; openblas_support.make_init('numpy')"
pip install --no-build-isolation --no-use-pep517 .

рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ choco install -y mingw рд╕рд╛рде gfortran рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

... рдпрд╣ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ

рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЪреЛрдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓ -y рдорд┐рдВрдЧрд╡ рдХреЗ рд╕рд╛рде рдЧреБрд░рдлрд░реНрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдХреНрдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ 32-рдмрд┐рдЯ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ?

https://github.com/numpy/numpy/blob/master/azure-steps-windows.yml#L29 -L31

рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ рдХрд┐ рдЖрдк рдПрдХ choco install -y mingw рд╕рд╛рде рдХреНрдпрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ рдЬрдм рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдКрдВ рдХрд┐ /path/to/openblas.a рд╣реИ - рд╕рдВрднрд╡рддрдГ tools/openblas_support.py (?) рдЪрд▓рд╛рдиреЗ рд╕реЗред

рд╣рд╛рдБ, python tools/openblas_support.py рдкреНрд░рд┐рдВрдЯ рдирд┐рдХрд▓рддрд╛ рд╣реИ рдЬрд╣рд╛рдБ openblas.a

рдЖрдкрдХреЛ рдЧреБрд░рдЪрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред Azure рдорд╢реАрдиреЛрдВ рдореЗрдВ 64-рдмрд┐рдЯ mingw рд▓рдЧрд╛ рд╣реИред рдпрджрд┐ рдЖрдк 32-рдмрд┐рдЯ рд╣реИрдВ, рддреЛ рдордВрдЧрд▓рд╛рдЪрд░рдг рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИред рдЖрдкрдХреЛ -m32 (рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ 32-рдмрд┐рдЯ рдХреЗ рд▓рд┐рдП) рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рд╢рдмреНрджрд╢рдГ рдХреЙрдкреА рдХреА рдЕрдзрд┐рдХрд╛рдВрд╢ https://github.com/numpy/numpy/blob/master/azure-steps-windows.yml рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ master рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред NumPy рдХреА рд╣реЛрдиреЗ рдореЗрдВ рд╕рдлрд▓ рд░рд╣рд╛ рдпрд╣ segfault рд╣реИ ред

рдореИрдВрдиреЗ рддрдм mattip/issue-16913 рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ URL рдбрд╛рдЙрдирд▓реЛрдб рдХреА рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде

https://anaconda.org/multibuild-wheels-staging/openblas-libs/v0.3.9-452-g349b722d/download/openblas-v0.3.9-452-g349b722d-win_amd64-gcc_7_1_0.zip

... рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 64-рдмрд┐рдЯ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП 32-рдмрд┐рдЯ OpenBLAS рдирд╣реАрдВ рд╣реИ:

https://anaconda.org/multibuild-wheels-staging/openblas-libs/files

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ 64-рдмрд┐рдЯ OpenBLAS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЯреИрдЧ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ?

2 рд╣реИрдВ рдФрд░ 1 рдЕрднреА рднреА рдмрдирд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдШрдВрдЯреЗ рдХреЗ рднреАрддрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕ рдмреАрдЪ рдореИрдВрдиреЗ рдЬреЛрдбрд╝рд╛:

        NPY_USE_BLAS_ILP64: '1'
        OPENBLAS_SUFFIX: '64_'

рдФрд░ рдпрд╣ рдареАрдХ рдмрдирд╛рдпрд╛ред рдЕрдм рдирд╣реАрдВ segfaults ! рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХреБрдЫ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдКрдВрдЧрд╛ред 32-рдмрд┐рдЯ OpenBLAS Win64 рд▓рд┐рдмрд╛рд╕ рд╣реЛрдиреЗ рдкрд░ рдореБрдЭреЗ рдкрд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ рдФрд░ рдореИрдВ рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдкреБрди: рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдХреЛрдИ рднреА рдмрджрд▓рд╛рд╡ рдЬрд┐рд╕реЗ рдЖрдк рдкреВрд░рд╛ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдЪрд▓рд╛рддреЗ рд╣реИрдВ :-)

python -c "import numpy; numpy.test('full')"

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 32 рдмрд┐рдЯреНрд╕ рдКрдкрд░ рд╣реИрдВ, рдФрд░ рдпрд╣ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ред

рдореИрдВ рдЕрдм рдПрдХ рдкреВрд░реНрдг рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рджреЗ рджреВрдБрдЧрд╛

рдЗрд╕рдореЗрдВ f2py рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЬреАрдм рдкрд░реАрдХреНрд╖рдг рд╕рдВрдЧреНрд░рд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

https://dev.azure.com/mne-tools/mne-python/_build/results?buildId=8372&view=logs&j=a846d25a-e32c-5640-1b53-e815fab94407&t=14a4ea33-5055-5caa-db84-413553e060fb

рдЖрдкрдХреЛ рдЗрд╕ рдЕрдиреНрдп рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдФрд░ рд╕рдордп рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рдореИрдВ рдЕрдЧрд▓реЗ рд╕рдкреНрддрд╛рд╣ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рд╕рд╛рдкреНрддрд╛рд╣рд┐рдХ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ BLAS рд╣реЛрдЧрд╛ред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо рдХрд┐рд╕реА рднреА рд╕рдордп рдорд╛рд╕реНрдЯрд░ рдмреНрд░рд╛рдВрдЪ рдХреЛ рдХрдорд┐рдЯ рдХрд░рдХреЗ рдкреБрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдареАрдХ рд╣реИ, рдореИрдВ рдЗрдВрддрдЬрд╛рд░ рдХрд░реВрдВрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рдПрдХ рдирдпрд╛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдХреНрдпрд╛ рд╡рд┐рдВрдбреЛрдЬ 10 2004 рдХреЗ рд╕рд╛рде рдореБрджреНрджрд╛ рдареАрдХ рд╣реИред

@bashtage рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

OpenBLAS рдЕрднреА рднреА рд╡рд┐рдВрдбреЛрдЬ рдХреА рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рд░рд┐рд▓реАрдЬ рдкрд░ рдЯреВрдЯ рдЧрдпрд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рд▓рд┐рдП рдЯреВрд▓ рдЪреЗрди рд╕реЗ рдорд┐рд╢реНрд░рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдЕрдЪреНрдЫреА рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдмрд╣реБрдд рд╣реА рдЧреИрд░-рдорд╛рдирдХ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

astrofrog picture astrofrog  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dmvianna picture dmvianna  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghost picture ghost  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

thouis picture thouis  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dcsaba89 picture dcsaba89  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ