Numpy: 2004 рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬ 10 рдЕрдкрдбреЗрдЯ рдХреЗ рдмрд╛рдж рдкреЙрд▓реАрдлрд┐рдЯ рдФрд░ рдИрдЧ рд░рд┐рдЧреНрд░реЗрд╢рди рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ

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

рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣реЗ рд╣реИрдВ:
FAILED .... \ lib \ test \ test_regression.py :: TestRegression :: test_polyfit_build - numpy.linalg.LinAlgError: SVD рдирд╣реАрдВ рдХрд┐рдпрд╛ ...
FAILED .... \ linalg \ test \ test_regression.py :: TestRegression :: test_eig_build - numpy.linalg.LinAlgError: Eigenvalues тАЛтАЛ...
FAILED .... \ ma \ test \ test_extras.py :: TestPolynomial :: test_polyfit - numpy.linalg.LinAlgError: SVD рдореИрдВрдиреЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ ...

рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде:

err = 'invalid value', flag = 8
    def _raise_linalgerror_lstsq(err, flag):
>       raise LinAlgError("SVD did not converge in Linear Least Squares")
E       numpy.linalg.LinAlgError: SVD did not converge in Linear Least Squares
err        = 'invalid value'
flag       = 8

рддрдерд╛

err = 'invalid value', flag = 8
    def _raise_linalgerror_eigenvalues_nonconvergence(err, flag):
>       raise LinAlgError("Eigenvalues did not converge")
E       numpy.linalg.LinAlgError: Eigenvalues did not converge
err        = 'invalid value'
flag       = 8

рдЙрдард╛рдП рдЧрдП рдХрджрдо:

  • рдПрдХ рд╡реАрдПрдо рдмрдирд╛рдПрдВ
  • рдирд╡реАрдирддрдо рд╡рд┐рдВрдбреЛрдЬ 10 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг 2004 (10.0.19041) рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
  • рдкрд╛рдпрдерди 3.8.3 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
  • pip install pytest
  • pip install numpy
  • pip install hypothesis
  • рдкреИрдХреЗрдЬ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдВ

рдЬрдм рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рд╕рдо рд╕рдорд╕реНтАНрдпрд╛ рд╣реЛрддреА рд╣реИред

рд╡рд░реНрдЬрди 1.19.0 рдХрд╛ рдЕрдВрдХ

рдХреНрдпрд╛ рдореБрдЭреЗ рдХреЛрдИ рдирд┐рд░реНрднрд░рддрд╛ рдпрд╛рдж рдЖ рд░рд╣реА рд╣реИ? рдпрд╛ рдпрд╣ рд╕рд┐рд░реНрдл рд╡рд┐рдВрдбреЛрдЬ рдЬрд╛ рд░рд╣рд╛ рд╣реИ bonkers?

00 - Bug 32 - Installation

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рдордиреЗ OpenBLAS v0.3.12 рдореЗрдВ рдПрдХ рдЕрджреНрдпрддрди рдХреЛ рдорд░реНрдЬ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдмрд┐рд▓реНрдб + рд╡рд┐рдВрдбреЛрдЬрд╝ рдЕрдкрдбреЗрдЯ 2004 рдЯреЗрд╕реНрдЯ рд╕реВрдЯ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред

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

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд┐рдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдЖрдЗрдЬрдирд╡реЗрд▓реНрдпреВ рдбреАрдХрдВрдкреЛрдЬрд╝рд┐рд╢рди (рд╕реНрдЯреИрдЯрд╕реНрдореЛрдбреЗрд▓ рдХреЗ рд▓рд┐рдП рд░рдирд┐рдВрдЧ рдЯреЗрд╕реНрдЯ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ) рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬ рдПрдПрдордбреА 64 рдкрд░ рднреА рдПрдХ рдЕрдЬреАрдм рдкрд░рд┐рдгрд╛рдо рдЖрдпрд╛ рд╣реИред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдордп рд╣реИ, рддреЛ 32 рдмрд┐рдЯ рдкрд╛рдпрдерди рдФрд░ рдкрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рд╕рдорд╛рди рдореБрджреНрджреЗ рдорд┐рд▓рддреЗ рд╣реИрдВ? рдореИрдВ рдЙрдиреНрд╣реЗрдВ 32-рдмрд┐рдЯ рд╡рд┐рдВрдбреЛ рдкрд░ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛ рд▓реЗрдХрд┐рди рд╡реЗ 64-рдмрд┐рдЯ рд╡рд┐рдВрдбреЛ рдкрд░ рджреЛрд╣рд░рд╛рдП рдЬрд╛ рд╕рдХрддреЗ рдереЗред

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

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореИрдВ рднреА рд╡рд┐рдВрдбреЛрдЬ AMD64 рдкрд░ NumPy 1.18.5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЙрдиреНрд╣реЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдВред

рдирд╡реАрдирддрдо Windows 10 рдЕрджреНрдпрддрди рдХреЗ рдмрд╛рдж рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ

рдХреНрдпрд╛ рдЕрджреНрдпрддрди рд╕реЗ рдкрд╣рд▓реЗ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣реЗ рдереЗ?

рдирд╣реАрдВ @charris , рдЕрджреНрдпрддрди рд╕реЗ рдкрд╣рд▓реЗ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдмрд╕ рдЧреБрдЬрд░рддрд╛ рд╣реИред

@speixoto рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреМрди рд╕рд╛ рдЕрдкрдбреЗрдЯ рд╣реИ? рдореБрдЭреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреА рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдкрд╛рдЗрдк-рд╕реНрдерд╛рдкрд┐рдд рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

рдЕрдкрдбреЗрдЯ 1809 (10.0.17763) рдХреЛрдИ рднреА рдЕрд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдг @bashtage рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛

1909 рднреА рдХреБрдЫ рднреА рдкреИрджрд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдпрд╣ рдХреЗрд╡рд▓ 2004 рдХреЗ рд╕рд╛рде рд╣реЛрдиреЗ рд▓рдЧрд╛ред

рдореИрдВ 100% рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рд╣реВрдБ рдХрд┐ рдпрд╣ 2004 рдпрд╛ рдЙрд╕рдХреЗ рдмрд╛рдж рдХрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 2004 рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ред

FWIW рдореИрдВ CI (Azure рдпрд╛ appveyor) рдкрд░ рдЗрди рджреБрд░реНрдШрдЯрдирд╛рдУрдВ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ 2 рдорд╢реАрдиреЛрдВ рдкрд░ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ AMD64 рджреЛрдиреЛрдВ рд╣реИрдВ рдФрд░ 2004 рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдпрд╛ рддреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЙрдиреНрд╣реЗрдВ 32-рдмрд┐рдЯ рдкрд╛рдпрдерди рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ?

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 2004 рдХреЗ рдЕрдкрдбреЗрдЯ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рдмрддрд╛рдИ рдЧрдИ рд╣реИрдВред рд╢рд╛рдпрдж рдпрд╣ рднреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдореИрдВрдиреЗ 1909 рдФрд░ 2004 рдХреА рддрд╛рдЬрд╝рд╛ рд╕реНрдерд╛рдкрдирд╛ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд┐рдпрд╛:

pip install numpy scipy pandas pytest cython
git clone https://github.com/statsmodels/statsmodels.git
cd statsmodels
pip install -e . --no-bulid-isolation
pytest statsmodels

1909 рдореЗрдВ рдХреЛрдИ рдЕрд╕рдлрд▓рддрд╛ рдирд╣реАрдВ рдорд┐рд▓реАред 2004 рдХреЗ 30 рдлреЗрд▓рд┐рдпрд░ рдореЗрдВ рд╕рднреА рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред

рдЬрдм рдореИрдВ 2004 рдореЗрдВ рдПрдХ рдбрд┐рдмрдЧрд░ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдкрд╣рд▓рд╛ рдХреЙрд▓ рдЕрдХреНрд╕рд░ рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рд╕рд╣реА рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ (рдЬреЛ рдмрд╛рд░-рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рд╕рд╣реА рд░рд╣рддрд╛ рд╣реИ)ред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рд╣реИред

рдХреНрдпрд╛ NumPy рдХреЗ рдкрд╣рд▓реЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рднреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк 1.19.0 рдЪрд▓ рд░рд╣реЗ рд╣реИрдВред

рдкрд╛рдЗрдк + 1.18.4, рдФрд░ рд╕реНрдХреИрдкреА 1.4.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдореБрдЭреЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╣реА рд╕реЗрдЯ рдорд┐рд▓рддрд╛ рд╣реИред

рдпреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдо рд╣реИрдВ:

ERROR statsmodels/graphics/tests/test_gofplots.py::TestProbPlotLongely::test_ppplot - numpy.linalg.LinAlgError: SVD did not converge
ERROR statsmodels/graphics/tests/test_gofplots.py::TestProbPlotLongely::test_qqplot_other_array - numpy.linalg.LinAlgError: SVD did not converge
ERROR statsmodels/graphics/tests/test_gofplots.py::TestProbPlotLongely::test_probplot - numpy.linalg.LinAlgError: SVD did not converge
ERROR statsmodels/graphics/tests/test_regressionplots.py::TestPlot::test_plot_leverage_resid2 - numpy.linalg.LinAlgError: SVD did not converge
ERROR statsmodels/regression/tests/test_regression.py::TestOLS::test_params - numpy.linalg.LinAlgError: SVD did not converge
ERROR statsmodels/regression/tests/test_regression.py::TestOLS::test_scale - numpy.linalg.LinAlgError: SVD did not converge
ERROR statsmodels/regression/tests/test_regression.py::TestOLS::test_ess - numpy.linalg.LinAlgError: SVD did not converge
ERROR statsmodels/regression/tests/test_regression.py::TestOLS::test_mse_total - numpy.linalg.LinAlgError: SVD did not converge
ERROR statsmodels/regression/tests/test_regression.py::TestOLS::test_bic - numpy.linalg.LinAlgError: SVD did not converge
ERROR statsmodels/regression/tests/test_regression.py::TestOLS::test_norm_resids - numpy.linalg.LinAlgError: SVD did not converge
ERROR statsmodels/regression/tests/test_regression.py::TestOLS::test_HC2_errors - numpy.linalg.LinAlgError: SVD did not converge
ERROR statsmodels/regression/tests/test_regression.py::TestOLS::test_missing - numpy.linalg.LinAlgError: SVD did not converge
ERROR statsmodels/regression/tests/test_regression.py::TestOLS::test_norm_resid_zero_variance - numpy.linalg.LinAlgError: SVD did not converge
ERROR statsmodels/tsa/tests/test_stattools.py::TestADFConstant::test_teststat - numpy.linalg.LinAlgError: SVD did not converge
ERROR statsmodels/tsa/tests/test_stattools.py::TestADFConstant::test_pvalue - numpy.linalg.LinAlgError: SVD did not converge
ERROR statsmodels/tsa/tests/test_stattools.py::TestADFConstant::test_critvalues - numpy.linalg.LinAlgError: SVD did not converge

рдЬрдм рдореИрдВ 1.18.5 + MKL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИред рдпрд╣ рдХрд╣рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдУрдкрдирдмреНрд▓рд╕ рдмрдЧ рдпрд╛ рд╡рд┐рдВрдбреЛрдЬ рдмрдЧред рд╕рдВрднрд╡рддрдГ рдЙрддреНрддрд░рд╛рд░реНрджреНрдз, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдард┐рди рд╣реЛрдЧрд╛ рдФрд░ рдирд┐рджрд╛рди рдХрд░рдирд╛ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдореЗрд░реА рдХреНрд╖рдорддрд╛рдУрдВ рд╕реЗ рдкрд░реЗ рд╣реИред

рдЙрд╕реА рднреМрддрд┐рдХ рдорд╢реАрди рдкрд░, рдЬрдм рдореИрдВ рдЙрдмрдВрдЯреВ рдореЗрдВ рд░рди рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдкрд╛рдЗрдк рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореБрдЭреЗ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред

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

svd

рдПрдХ рдЕрдВрддрд┐рдо рдЕрджреНрдпрддрди: рдпрджрд┐ рдореИрдВ рдЕрдиреБрдХреВрд▓рд┐рдд BLAS рдХреЗ рдмрд┐рдирд╛ NumPy рдХреЗ рд╕реНрд░реЛрдд рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдЕрднреА рднреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рдПрдХ рд╕рдорд╛рди рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИрдВред

рд╢рд╛рдпрдж OpenBLAS рджреЗрд╡реЛрдВ рдХреЛ рдкрд┐рдВрдЧ рдХрд░рдиреЗ рд▓рд╛рдпрдХред рдХреНрдпрд╛ рдпрд╣ рдлреНрд▓реЛрдЯ 32 рдХреЗ рд╕рд╛рде рдЕрдХреНрд╕рд░ рдлреНрд▓реЛрдЯ 64 рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ?

рдЬрдм рдореИрдВ NumPy 1.19.0, python -c "import numpy;numpy.test('full')" рдХрд╛ рдкреВрд░реНрдг рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдКрдкрд░ рдХреА рддрд░рд╣ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ:

FAILED Python/Python38/Lib/site-packages/numpy/lib/tests/test_regression.py::TestRegression::test_polyfit_build - numpy.linalg.LinAlgError: SVD did not conv...
FAILED Python/Python38/Lib/site-packages/numpy/linalg/tests/test_regression.py::TestRegression::test_eig_build - numpy.linalg.LinAlgError: Eigenvalues did n...
FAILED Python/Python38/Lib/site-packages/numpy/ma/tests/test_extras.py::TestPolynomial::test_polyfit - numpy.linalg.LinAlgError: SVD did not converge in Lin...

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

рдореИрдВрдиреЗ Microsoft рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рддрд░реАрдХрд╛ рджрд╛рдпрд░ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ:

https://aka.ms/AA8xe7q

рджреВрд╕рд░реЛрдВ рдХреЛ рдЦреЛрдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреЛрдЬрдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреЛрд╕реНрдЯрд┐рдВрдЧ:

рдпрджрд┐ рдЗрд╕рдХрд╛ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡рд┐рдВрдбреЛрдЬ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреЙрдирдбрд╛ / рдПрдордХреЗрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ 2004 рддрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдпрд╣рд╛рдБ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкреНрд░рдЬрдирди рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

import numpy as np
a = np.arange(13 * 13, dtype=np.float64)
a.shape = (13, 13)
a = a % 17
va, ve = np.linalg.eig(a)

рдХрд╛ рдЙрддреНрдкрд╛рджрди

 ** On entry to DGEBAL parameter number  3 had an illegal value
 ** On entry to DGEHRD  parameter number  2 had an illegal value
 ** On entry to DORGHR DORGQR parameter number  2 had an illegal value
 ** On entry to DHSEQR parameter number  4 had an illegal value
---------------------------------------------------------------------------
LinAlgError                               Traceback (most recent call last)
<ipython-input-11-bad305f0dfc7> in <module>
      3 a.shape = (13, 13)
      4 a = a % 17
----> 5 va, ve = np.linalg.eig(a)

<__array_function__ internals> in eig(*args, **kwargs)

c:\anaconda\envs\py-pip\lib\site-packages\numpy\linalg\linalg.py in eig(a)
   1322         _raise_linalgerror_eigenvalues_nonconvergence)
   1323     signature = 'D->DD' if isComplexType(t) else 'd->DD'
-> 1324     w, vt = _umath_linalg.eig(a, signature=signature, extobj=extobj)
   1325
   1326     if not isComplexType(t) and all(w.imag == 0.0):

c:\anaconda\envs\py-pip\lib\site-packages\numpy\linalg\linalg.py in _raise_linalgerror_eigenvalues_nonconvergence(err, flag)
     92
     93 def _raise_linalgerror_eigenvalues_nonconvergence(err, flag):
---> 94     raise LinAlgError("Eigenvalues did not converge")
     95
     96 def _raise_linalgerror_svd_nonconvergence(err, flag):

LinAlgError: Eigenvalues did not converge

рдХреНрдпрд╛ LAPACK рдХреА рдЧрд┐рдирддреА 0 рдпрд╛ 1 рд╕реЗ рд╣реЛрддреА рд╣реИ? рд╕рднреА рдЕрд╡реИрдз рдорд╛рди рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВ:
DGEBAL
DGEHRD
DORGHR
DHSEQR

рдпрд╣ рдПрдХ OpenBlas рдореБрджреНрджрд╛ (рдпрд╛ 2004 рдФрд░ OpenBLAS рдХреЗ рдмреАрдЪ рдХреБрдЫ) рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рд╣реИред рдпрд╣рд╛рдБ рдореЗрд░рд╛ рд╕рд╛рд░рд╛рдВрд╢ рд╣реИ:

NumPy рдХреЗрд╡рд▓ python -c "import numpy;numpy.test('full')"

  • рдХреЛрдИ рдЕрдиреБрдХреВрд▓рд┐рдд BLAS рдирд╣реАрдВ: рдкреВрд░рд╛ рдкрд╛рд╕
  • OpenBLAS: рдЕрд╕рдлрд▓ рдкреВрд░реНрдг
  • MKL: рдкреВрд░рд╛ рдкрд╛рд╕

рд╕реНрдЯреИрдЯрдореЙрдбрд▓ рдкрд░реАрдХреНрд╖рдг pytest statsmodels

  • Pip NumPy рдФрд░ SciPy: SVD рдФрд░ QR рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдлрд▓рддрд╛
  • MKL NumPy рдФрд░ SciPy: рдкрд╛рд╕
  • рдХреЛрдИ рдЕрдиреБрдХреВрд▓рд┐рдд BLAS рдирд╣реАрдВ: рд╡рд┐рдлрд▓ , рд▓реЗрдХрд┐рди рдХрдо рд╣реИ рдХрд┐ рд╕рднреА рдореЗрдВ scipy.linalg рд░реВрдЯреАрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреЛ OpenBLAS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
  • рдХреЛрдИ рдЕрдиреБрдХреВрд▓рд┐рдд BLAS, рдХреЛрдИ рд╡рд┐рдЬреНрдЮрд╛рди рдирд╣реАрдВ linalg: рдкрд╛рд╕

рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ 2004 рдореЗрдВ рдХреНрдпрд╛ рдмрджрд▓ рдЧрдпрд╛ред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕рдВрдХрд▓рд┐рдд / рд▓рд┐рдВрдХ рдХрд░рддреЗ рд╕рдордп рд╢рд╛рдпрдж рд╣рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдзреНрд╡рдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА?

_If_ рдпрд╣ рдПрдХ OpenBLAS рдмрдЧ рд╣реИ, рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рджреЗрдЦрд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдВрдбреЛрдЬ-рдЖрдзрд╛рд░рд┐рдд рд╕реАрдЖрдИ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА 19041 (рдЙрд░реНрдл рд╡рд┐рдВрдбреЛрдЬ 10 2004) рдпрд╛ рдмрд╛рдж рдХреЗ рдмрд┐рд▓реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдмрд╕ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рдЪ рд╣реИ рдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдбрдмреНрд▓реНрдпреВрдПрд╕рдПрд▓ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ?

рдирд╣реАрдВ, рд╕рднреА рдХреЗ рд╕рд╛рде рдХреЛрдВрдбрд╛-рдкреНрд░рджрд╛рди python.exe рдпрд╛ python.org рдиреЗ python.exe

рдХреНрдпрд╛ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ OPENBLAS_CORETYPE=Haswell рдпрд╛ OPENBLAS_CORETYPE=NEHALEM рд╡рд┐рд╕реНрдлреЛрдЯрдХ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рд╣реИ?

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

рд╕рдмрд╕реЗ рдЕрдЬреАрдм рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЖрдк рджреМрдбрд╝рддреЗ рд╣реИрдВ

import numpy as np
a = np.arange(13 * 13, dtype=np.float64)
a.shape = (13, 13)
a = a % 17
va, ve = np.linalg.eig(a)  # This will raise, so manually run the next line
va, ve = np.linalg.eig(a)

рджреВрд╕рд░рд╛ (рдФрд░ рдЖрдЧреЗ рдХреЛрдИ рднреА) eig рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИред

SciPy рдореЗрдВ рдПрдХ рд╕рдорд╛рди рддреНрд░реБрдЯрд┐ рд╣реИ

import numpy as np
import scipy.linalg
a = np.arange(13 * 13, dtype=np.float64)
a.shape = (13, 13)
a = a % 17
va, ve = scipy.linalg.eig(a) 

рдЬреЛ рдЙрдард╛

 ** On entry to DGEBAL parameter number  3 had an illegal value
 ** On entry to DGEHRD  parameter number  2 had an illegal value
 ** On entry to DORGHR DORGQR parameter number  2 had an illegal value
 ** On entry to DHSEQR parameter number  4 had an illegal value
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-58-8dfe8125dfe3> in <module>
      4 a.shape = (13, 13)
      5 a = a % 17
----> 6 va, ve = scipy.linalg.eig(a)

c:\anaconda\envs\py-pip\lib\site-packages\scipy\linalg\decomp.py in eig(a, b, left, right, overwrite_a, overwrite_b, check_finite, homogeneous_eigvals)
    245         w = _make_eigvals(w, None, homogeneous_eigvals)
    246
--> 247     _check_info(info, 'eig algorithm (geev)',
    248                 positive='did not converge (only eigenvalues '
    249                          'with order >= %d have converged)')

c:\anaconda\envs\py-pip\lib\site-packages\scipy\linalg\decomp.py in _check_info(info, driver, positive)
   1348     """Check info return value."""
   1349     if info < 0:
-> 1350         raise ValueError('illegal value in argument %d of internal %s'
   1351                          % (-info, driver))
   1352     if info > 0 and positive:

ValueError: illegal value in argument 4 of internal eig algorithm (geev)

рдЕрдВрддрд┐рдо рдиреЛрдЯ, np.complex128 рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рднреА np.float32 рдпрд╛ np.complex64 рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░реНрдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрддрд╛ рд╣реИред

рдХреЛрдб рдХреЗ рдкрд╛рдпрдерди рднрд╛рдЧреЛрдВ рдХреЛ рд▓рдВрдмреЗ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлреЛрд░реНрдЯреНрд░рд╛рди (рд▓реИрдкреИрдХ) рднрд╛рдЧреЛрдВ рдореЗрдВ INTERFACE64 = 1 рдХреЗ рдмрд┐рдирд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ OpenBLAS?
(рдпрд╣ рдЕрднреА рднреА рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдХрд┐ рдкрд╣рд▓реА рдХреЙрд▓ рд╡рд┐рдлрд▓ рдХреНрдпреЛрдВ рд╣реЛрддреА рд╣реИ рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдХреЛрдИ рднреА рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рди рд╣реА рдпрд╣ 19041 рд╕реЗ рдкрд╣рд▓реЗ рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд┐рдпрд╛)

рд╡рд┐рдВрдбреЛрдЬ 10 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдХреЗ рдлреАрдбрдмреИрдХ рд╣рдм рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред

https://aka.ms/AA8xe7q

@Bashtage рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░, рдореИрдВрдиреЗ рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рдЦреЛрджрд╛ рд╣реИ, рдФрд░ рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рд╕реНрдЯреЗрдЯ рдХрд╛ рдХреБрдЫ рдкрд╣рд▓реВ рдЕрдм рдкреНрд░рд╡реЗрд╢ рдкрд░ рдЕрд▓рдЧ рд╣реИред рдЗрд╕рд╕реЗ рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рд╣реЛрддреА рдкреНрд░рддреАрдд рд╣реЛрдЧреА:

np.complex128 рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдирд╛ рднреА рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ np.float32 рдпрд╛ np.complex64 рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдирд╛ рджреЛрдиреЛрдВ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдкрд╣рд▓рд╛ рдЪреЗрддрд╛рд╡рдиреА рд╕рдВрджреЗрд╢ (рдЬреЛ рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ) "DGEBAL рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдВрдЦреНрдпрд╛ 3 рдХреЗ рдкреНрд░рд╡реЗрд╢ рдкрд░ рдПрдХ рдЧреИрд░рдХрд╛рдиреВрдиреА рдореВрд▓реНрдп рдерд╛" рдЗрд╕ рд╢рд░реНрдд рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ https://github.com/xianyi/OpenBLAS/blob/ce36515ff12079f3ca2418aa85b9ad571c3a391/lapackack -рдиреЗрдЯрд▓рд┐рдм / рдПрд╕рдЖрд░рд╕реА / dgebal.f # L336 рдЬреЛ NaN рдореЗрдВ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдкреВрд░реНрд╡ рдЧрдгрдирд╛ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд░реЗрдкреНрд░реЛ рдЪрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдлреНрд▓реЛрдЯ 32 рдХреЗ рд░реВрдк рдореЗрдВ рдореЙрдб рдХрд░рдирд╛ "рдЗрд╕реЗ" рдареАрдХ рдХрд░рддрд╛ рд╣реИ:

import numpy as np
a = np.arange(13 * 13, dtype=np.float64)
a.shape = (13, 13)
a = (a.astype(np.float32) % 17).astype(np.float64) # <-- only line changed
va, ve = np.linalg.eig(a)

рддреЛ рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рдЙрд╕ рдХреЛрдб рдкрде рдореЗрдВ рдХреБрдЫ рд╣реИ рдЬреЛ рд░рд╛рдЬреНрдп рдХреЛ рдареАрдХ рд╕реЗ рд░реАрд╕реЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛрдИ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрдиреНрди рдХреЗ рдЖрдВрддрд░рд┐рдХ рд▓реЛрдЧреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рдкреБрд░рд╛рдиреЗ рдмрдЧ рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рд╡рд╛рдЗрдВрдбреЛрд╡реНрд╕ рдкрд░ рдорд┐рдВрдЧрд╡ рдХреЗ рд╕рд╛рде рджреЗрдЦрд╛ рдерд╛, рдЬрд╣рд╛рдВ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд░реНрдХрд░ рдереНрд░реЗрдбреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдерд╛, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдбреАрдиреЛрд░реНрдорд▓ рд╢реВрдиреНрдп рд╕реЗ рдлреНрд▓рд╢ рдирд╣реАрдВ рд╣реЛ рд░рд╣реЗ рдереЗ рдФрд░ рдмрд╛рдж рдХреА рдЧрдгрдирд╛рдУрдВ рдХреЛ рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рд░рд╣реЗ рдереЗред
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╡рд░реНрддрдорд╛рди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рд╡рд░реНрддрдорд╛рди рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдирдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХрд╛
OpenBLAS рдмрд┐рд▓реНрдб CONSISTENT_FPCSR = 1 рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдпрд╛ рдпрджрд┐ рд╡рд╣ рдирд┐рд░реНрдорд╛рдг рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ)ред

@mattip рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐

рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ:

https://github.com/MacPython/openblas-libs/blob/444203b6dff90c2f0d2304fb3d85e1ac6db5c1e8/appveyor/build_openblas.sh#L68

рдЦреИрд░, рдХрдо рд╕реЗ рдХрдо рдпрд╣ рддрдм рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред рдХрдиреЗрдХреНрд╢рди рд╡реИрд╕реЗ рднреА рдХрд╛рдлреА рджреВрд░рд╕реНрде рд▓рдЧ рд░рд╣рд╛ рдерд╛ред

рдирдорд╕реНрддреЗ! рдореИрдВ рдХреБрдЫ рд╕рдордп рд╕реЗ рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореЗрд░реЗ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдВрдбреЛрдЬрд╝ 10 (2004) рдФрд░ рдУрдкрдирдмреНрд▓реИрд╕ рдХреЗ рдмреАрдЪ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдЖрдорддреМрд░ рдкрд░ 3 рдкреАрд╕реА (2 рд╡рд┐рдВрдбреЛрдЬ 10 рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдФрд░ рдПрдХ рдкреБрд░рд╛рдиреЗ рд╡рд┐рдВрдбреЛрдЬ 7 рд▓реИрдкрдЯреЙрдк) рдкрд░ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрд▓рд╛рддрд╛ рд╣реВрдВред рдореЗрд░реА python рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдиреЗ linalg рдФрд░ svd () рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рджреБрд░реНрд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдиреЗ 2 рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдХреЛ рд╡рд┐рдВрдбреЛрдЬ 2004 рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 10 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реА рдмрд╛рд░ рдХреНрд░реИрд╢ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛рддрд░ рдмрд╛рд░ рджреВрд╕рд░реА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ (рдЬреБрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ рдЪрд▓рд╛рдиреЗ)ред рдкреБрд░рд╛рдиреЗ рд▓реИрдкрдЯреЙрдк рд░рд┐рдЧ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╣реА рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрд▓рд╛рддреЗ рд░рд╣реЗ! рдореЗрд░реЗ рдкрд╛рд╕ рдорд┐рдирд┐рдХреЛрдВрдбрд╛, рдкрд╛рдпрдерди 3.6 рд╣реИ рдФрд░ рд╕рднреА рдкреИрдХреЗрдЬ рдкрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ (3 рдорд╢реАрдиреЛрдВ рдкрд░ рдПрдирд╡реА рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА рд╣реИ)ред
рдЖрдЬ рдореИрдВ рдкрд┐рдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ numpy (1.19.0) рд╕реНрдерд╛рдкрд┐рдд рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ рд╕реЗ numpy + MKL (numpy-1.19.1 + MKL-cp36-cp36m-win_amd64.whl) рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд https://www.lfd.uci.edu/ ~ gohlke / pythonlibs /ред рдЕрдм рддрдХ, linalg рдФрд░ svd () рдЕрднрд┐рд╕рд░рдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЧрд╛рдпрдм рд╣реЛ рдЧрдИрдВред рдЕрдЧрд░ рдореБрдЭреЗ рдХреБрдЫ рдФрд░ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдпрд╣рд╛рдВ рд╡рд╛рдкрд╕ рдЖрдКрдВрдЧрд╛ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реВрдВрдЧрд╛ред

рджрд╛рд░рд┐рдпреЛ

рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ OpenBLAS dll lib.exe рдХреЗ VC9 рд╕рдВрд╕реНрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ? рдпрд╣ рд╡рд╣ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╛рдпрдерди 2.7 рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдмрд╛рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ VC9 рдХрд╛ рдХрд╣реАрдВ рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓рд╛ рдХрджрдо (рд╢рд╛рдпрдж рдореЗрд░реЗ рд▓рд┐рдП) рдПрдХ рд╕рд┐рдВрдЧрд▓-рдереНрд░реЗрдбреЗрдб рдУрдкрдирдмреАрдПрдПрд▓рдПрд╕ ( USE_THREAD=0 ) рдХреЗ рд╕рд╛рде NumPy рдорд╛рд╕реНрдЯрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдлрд▓рддрд╛ рдХреЗ рдХреБрдЫ рдкреНрд░рдпреЛрдЧ рдХрд┐рдП рд╣реИрдВ:

  • рдзрд╛рдЧреЗ рдХреЛ USE_THREADS=0 рдЕрдХреНрд╖рдо рдХрд░реЗрдВ
  • ILP64 INTERFACE64=1 <- рдПрдХреНрд╕реЗрд╕ рдЙрд▓реНрд▓рдВрдШрди рдХреЗ рд╕рд╛рде NumPy рдХреЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╕рд┐рдЧрдлреЙрд▓реНрдЯ

рдХреНрдпрд╛ рдЖрдк рдЙрд╕ Win10 рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде LAPACK рдЯреЗрд╕реНрдЯрд╕реБрдЗрдЯ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП cmake рдмрд┐рд▓реНрдб рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдерд╛, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕реБрдиреНрди рдХреЗ рдХреБрдЫ рд╕реБрд░рд╛рдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реЛред

                        -->   LAPACK TESTING SUMMARY  <--
SUMMARY                 nb test run     numerical error         other error
================        ===========     =================       ================
REAL                    409288          0       (0.000%)        0       (0.000%)
DOUBLE PRECISION        410100          0       (0.000%)        0       (0.000%)
COMPLEX                 420495          0       (0.000%)        0       (0.000%)
COMPLEX16               13940           0       (0.000%)        0       (0.000%)

--> ALL PRECISIONS      1253823         0       (0.000%)        0       (0.000%)

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореБрдЭреЗ рдмрд╣реБрдд рд╕рд╛рд░реА рд▓рд╛рдЗрдиреЗрдВ рдкрд╕рдВрдж рд╣реИрдВ

-->  Testing DOUBLE PRECISION Nonsymmetric Eigenvalue Problem [ xeigtstd < nep.in > dnep.out ]
---- TESTING ./xeigtstd... FAILED(./xeigtstd < nep.in > dnep.out did not work) !

рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпреЗ рднрд░реЛрд╕реЗрдордВрдж рд╣реИрдВред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╣реБрдордд segfaulting рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬреАрд╡рд┐рдд рд▓реЛрдЧ рдирд┐рд░реНрджреЛрд╖ рд╣реИрдВ ... рдпрд╣ рдореЗрд░реА рдЕрдкреЗрдХреНрд╖рд╛ рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЪрд░рдо рдкрд░ рд╣реИред
(COMPLEX рдФрд░ COMPLEX16 рд╕реНрдЯреИрдХ рдЖрдХрд╛рд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдереЛрдбрд╝реА рдмрд╣реБрдд рдорд╛рдВрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ OS рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди REAL рдФрд░ DOUBLE рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд▓рдЧрднрдЧ 1200000 рдкрд░реАрдХреНрд╖рдг рджрд┐рдЦрд╛рдПрдВрдЧреЗред рдпрд╣ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рд╣реИ рдЕрдЧрд░ MS рдиреЗ рдХреБрдЫ рдЧрд▓рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдЯреИрдХ рдмрджрд▓ рджрд┐рдП рд╣реИрдВред рд╕реАрдорд╛ рдпрд╛ рд▓реЗрдЖрдЙрдЯ рд╣рд╛рд▓рд╛рдВрдХрд┐)

рдХреБрдЫ рдкреГрд╖реНрдарднреВрдорд┐ред рд╕рдм рдХреБрдЫ gcc.exe / gfortran.exe рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ .a рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ DLL рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ:

$ gcc -v
Using built-in specs.
COLLECT_GCC=C:\git\numpy-openblas-windows\openblas-libs\mingw64\bin\gcc.exe
COLLECT_LTO_WRAPPER=C:/git/numpy-openblas-windows/openblas-libs/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/7.1.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../src/gcc-7.1.0/configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/mingw64 --with-sysroot=/c/mingw710/x86_64-710-posix-seh-rt_v5-rev0/mingw64 --enable-shared --enable-static --disable-multilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --enable-libstdcxx-filesystem-ts=yes --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=nocona --with-tune=core2 --with-libiconv --with-system-zlib --with-gmp=/c/mingw710/prerequisites/x86_64-w64-mingw32-static --with-mpfr=/c/mingw710/prerequisites/x86_64-w64-mingw32-static --with-mpc=/c/mingw710/prerequisites/x86_64-w64-mingw32-static --with-isl=/c/mingw710/prerequisites/x86_64-w64-mingw32-static --with-pkgversion='x86_64-posix-seh-rev0, Built by MinGW-W64 project' --with-bugurl=http://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -fno-ident -I/c/mingw710/x86_64-710-posix-seh-rt_v5-rev0/mingw64/opt/include -I/c/mingw710/prerequisites/x86_64-zlib-static/include -I/c/mingw710/prerequisites/x86_64-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -I/c/mingw710/x86_64-710-posix-seh-rt_v5-rev0/mingw64/opt/include -I/c/mingw710/prerequisites/x86_64-zlib-static/include -I/c/mingw710/prerequisites/x86_64-w64-mingw32-static/include' CPPFLAGS=' -I/c/mingw710/x86_64-710-posix-seh-rt_v5-rev0/mingw64/opt/include -I/c/mingw710/prerequisites/x86_64-zlib-static/include -I/c/mingw710/prerequisites/x86_64-w64-mingw32-static/include' LDFLAGS='-pipe -fno-ident -L/c/mingw710/x86_64-710-posix-seh-rt_v5-rev0/mingw64/opt/lib -L/c/mingw710/prerequisites/x86_64-zlib-static/lib -L/c/mingw710/prerequisites/x86_64-w64-mingw32-static/lib '
Thread model: posix
gcc version 7.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)

$ gfortran -v
Using built-in specs.
COLLECT_GCC=C:\git\numpy-openblas-windows\openblas-libs\mingw64\bin\gfortran.exe
COLLECT_LTO_WRAPPER=C:/git/numpy-openblas-windows/openblas-libs/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/7.1.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../src/gcc-7.1.0/configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/mingw64 --with-sysroot=/c/mingw710/x86_64-710-posix-seh-rt_v5-rev0/mingw64 --enable-shared --enable-static --disable-multilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --enable-libstdcxx-filesystem-ts=yes --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=nocona --with-tune=core2 --with-libiconv --with-system-zlib --with-gmp=/c/mingw710/prerequisites/x86_64-w64-mingw32-static --with-mpfr=/c/mingw710/prerequisites/x86_64-w64-mingw32-static --with-mpc=/c/mingw710/prerequisites/x86_64-w64-mingw32-static --with-isl=/c/mingw710/prerequisites/x86_64-w64-mingw32-static --with-pkgversion='x86_64-posix-seh-rev0, Built by MinGW-W64 project' --with-bugurl=http://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -fno-ident -I/c/mingw710/x86_64-710-posix-seh-rt_v5-rev0/mingw64/opt/include -I/c/mingw710/prerequisites/x86_64-zlib-static/include -I/c/mingw710/prerequisites/x86_64-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -I/c/mingw710/x86_64-710-posix-seh-rt_v5-rev0/mingw64/opt/include -I/c/mingw710/prerequisites/x86_64-zlib-static/include -I/c/mingw710/prerequisites/x86_64-w64-mingw32-static/include' CPPFLAGS=' -I/c/mingw710/x86_64-710-posix-seh-rt_v5-rev0/mingw64/opt/include -I/c/mingw710/prerequisites/x86_64-zlib-static/include -I/c/mingw710/prerequisites/x86_64-w64-mingw32-static/include' LDFLAGS='-pipe -fno-ident -L/c/mingw710/x86_64-710-posix-seh-rt_v5-rev0/mingw64/opt/lib -L/c/mingw710/prerequisites/x86_64-zlib-static/lib -L/c/mingw710/prerequisites/x86_64-w64-mingw32-static/lib '
Thread model: posix
gcc version 7.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╕реЛрдЪрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЕрдВрдХ рдиреНрдпреВрдкреЗ рдФрд░ рдУрдкрдирдмреАрдПрд▓рдПрдПрд╕ рдХреЗ рдмреАрдЪ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИред рдореИрдВ рд╕реЛрдЪ рднреА рдирд╣реАрдВ рд╕рдХрддрд╛ рдХрд┐ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдкрд╣рд▓реА рдХреЙрд▓ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рдФрд░ рдмрд╛рдж рдореЗрдВ рд╕рднреА рдареАрдХ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП (рдпрд╛ рдЯреАрдмреАрдПрдЪ рдиреЗ рднреА рдЧрд╣рд░реЗ рдореБрджреНрджреЗ рдХрд╛ рд╕рдЯреАрдХ рдирд┐рджрд╛рди рдХрд┐рдпрд╛ рд╣реИ) рд╣рд╛рд▓рд╛рдВрдХрд┐ ...?

MS рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдХрднреА рдЦреБрд╢реА рд╕реЗ рд░рд╣реЗрдВ? рдпрджрд┐ рдпрд╣ рд▓реИрдкреИрдХ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ рддреЛ рд╣реИрдВрдбрдСрдлрд╝ рдХреА рд╕рдорд╕реНрдпрд╛ рдлреЛрд░рдЯреНрд░рд╛рди (= рдУрдкрдирдмреНрд▓рд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛) рдФрд░ рд╕реА, рдпрд╛ рдлреЛрд░рдЯреНрд░рд╛рди рдФрд░ "рдХреБрдЫ рдФрд░" рдХреЗ рдмреАрдЪ рд╣реИред

рдореБрдЭреЗ рдЙрддреНрд╕реБрдХрддрд╛ рд╣реЛрдЧреА рдЕрдЧрд░ рдЖрдИрд╕реАрдХреНрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдУрдкрдирдмреАрдПрд▓рдПрдПрд╕ рдХреЗ рд╕рд╛рде рдиреЗрдореНрдкреА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╕рдВрднрд╡ рд╣реИ
рдФрд░ ifort рддреЛ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд░рд╣рддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ рдмрдбрд╝рд╛ рд╕рд╡рд╛рд▓ рд╣реИред

рдмреБрдз рдкрд░, 12 рдЕрдЧрд╕реНрдд, 2020, 19:04 рдорд╛рд░реНрдЯрд┐рди рдХреНрд░реЛрдХреЗрд░ рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

MS рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдХрднреА рдЦреБрд╢реА рд╕реЗ рд░рд╣реЗрдВ? рдпрджрд┐ рдпрд╣ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ
рд▓реИрдкреИрдХ рдЯреЗрд╕реНрдЯ рдХреА рд╣реИрдВрдбрдСрдлрд╝ рд╕рдорд╕реНрдпрд╛ рдлреЛрд░рдЯреНрд░рд╛рди (= LAPACK рднрд╛рдЧ) рдХреЗ рдмреАрдЪ рд╣реИ
OpenBLAS) рдФрд░ рд╕реА, рдпрд╛ рдлреЛрд░рдЯреНрд░рд╛рди рдФрд░ "рдХреБрдЫ рдФрд░"ред

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

рд╢рд╛рдпрдж рдЗрдВрдЯреЗрд▓ рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕ рдХреЗ рд╕рд╛рде рдУрдкрдирдмреНрд▓рд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╕рд╛рдордиреЗ рдЖрдП рд╡реАрдПрд╕ рдХреЗ рд╕рд╛рде рдХрдо рд╕реЗ рдХрдо рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдлрд┐рд▓рд╣рд╛рд▓ ifc / ifort рдХреЗ рд▓рд┐рдП рд╡реИрдз рд▓рд╛рдЗрд╕реЗрдВрд╕ рдирд╣реАрдВ рд╣реИред

рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрдмрдВрдзрд┐рдд рд╕рдорд╕реНрдпрд╛:

https://developercommunity.visualstudio.com/content/problem/1095521/link-error-in-in-rust-test-binary.html

рдпрджрд┐ рдЗрд╕рдХрд╛ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡рд┐рдВрдбреЛрдЬ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреЙрдирдбрд╛ / рдПрдордХреЗрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ 2004 рддрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

@bashtage рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ рдХреБрдЫ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА рд╣реИ рдЬрдм рдореИрдВ рдЕрдВрдХреБрд╢ рдХреЗ рдХреЛрдирдбрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдкрдВрдбрд╛рд╕рдХреНрдХрд▓ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдЗрдХреНрд▓рд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реБрдИ рд╣реИ рдЬрдм рдореИрдВ numpy + mkl рдХреЗ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛

@bashtage рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕ рдЬрдВрдЧ рд▓рд┐рдВрдХ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ MSVC

FYI рдХрд░реЗрдВ: рд╕рдВрдмрдВрдзрд┐рдд SciPy рд╕рдорд╕реНрдпрд╛: https://github.com/scipy/scipy/issues/12747

рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рд╣реИ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рдмрд┐рд▓реНрдб 17763.1397 (рдЕрдЧрд╕реНрдд 11) рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ, # 17082 рджреЗрдЦреЗрдВред

рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рд╣реИ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рдмрд┐рд▓реНрдб 17763.1397 (рдЕрдЧрд╕реНрдд 11) рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ, # 17082 рджреЗрдЦреЗрдВред

https://support.microsoft.com/en-us/help/4565349/windows-10-update-kb4565349

рдмрд┐рд▓реНрдб 17763.1397 рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬ 10, рд╕рдВрд╕реНрдХрд░рдг 1809 рдХреЗ рд▓рд┐рдП рд╣реИ (рдЗрд╕ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ: рд╡рд┐рдВрдбреЛрдЬ 10, рд╕рдВрд╕реНрдХрд░рдг 1809, рд╕рднреА рд╕рдВрд╕реНрдХрд░рдг рд╡рд┐рдВрдбреЛрдЬ рд╕рд░реНрд╡рд░ рд╕рдВрд╕реНрдХрд░рдг 1809 рд╡рд┐рдВрдбреЛрдЬ рд╕рд░реНрд╡рд░ 2019, рд╕рднреА рд╕рдВрд╕реНрдХрд░рдг)ред
рд╡рд┐рдВрдбреЛрдЬрд╝ 10, рд╕рдВрд╕реНрдХрд░рдг 1809 рдХреЗ рд▓рд┐рдП рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рдпрд╣ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬрд╝ 10, 2004 рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЕрдкрдбреЗрдЯ рд╕рдВрд╕реНрдХрд░рдг рд╣реИред
https://support.microsoft.com/en-us/help/4566782
11 рдЕрдЧрд╕реНрдд, 2020- KB4566782 (рдУрдПрд╕ рдмрд┐рд▓реНрдб 19041.450)ред

рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рд╡рд┐рдВрдбреЛрдЬ 10, рд╕рдВрд╕реНрдХрд░рдг 2004 рдкрд░ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ

image

19042.487 рдкрд░ рд╕рдорд╛рди рд╡рд┐рдлрд▓рддрд╛рдПрдВ (рдпрд╣ 20H2 рд╢рд╛рдЦрд╛ рд╣реИ):

-- Docs: https://docs.pytest.org/en/stable/warnings.html
=============================================== short test summary info ===============================================
FAILED lib/tests/test_regression.py::TestRegression::test_polyfit_build - numpy.linalg.LinAlgError: SVD did not conve...
FAILED linalg/tests/test_regression.py::TestRegression::test_eig_build - numpy.linalg.LinAlgError: Eigenvalues did no...
FAILED ma/tests/test_extras.py::TestPolynomial::test_polyfit - numpy.linalg.LinAlgError: SVD did not converge in Line...
3 failed, 11275 passed, 559 skipped, 20 xfailed, 1 xpassed, 1 warning in 398.16s (0:06:38)

рдореИрдВ OpenBLAS рдХреЗ рд▓реИрдкреИрдХ-рдкрд░реАрдХреНрд╖рдг рдореЗрдВ (рдЖрдВрд╢рд┐рдХ) рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ - рдХреЗрд╡рд▓ EIG (eigenvalue) рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдХреБрдЫ рдЕрд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЙрдЪреНрдЪ рд╕реНрдЯреИрдХрд╛рдЗрдЬрд╝ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдиреЗ рдЬрд╛рддреЗ рд╣реИрдВред рд╡рд╣рд╛рдВ SIGSEGV __chkstk_ms_ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдореБрдЦреНрдп () рд╕реЗ рдкрд╣рд▓реЗ рднреА рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ "рд╕реНрдЯреИрдХ рдЖрд░рдХреНрд╖рд┐рдд рдЖрдХрд╛рд░" рдФрд░ "рд╕реНрдЯреИрдХ рдХрдореЗрдЯ рд╕рд╛рдЗрдЬрд╝" рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ peflags рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдзрд┐рдд (рдЬреИрд╕реЗ peflags -x4194304 -X4194304 EIG/xeigtsts.exe ) рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╕реА / рдлреЛрд░рдЯреНрд░рд╛рди рдЗрдВрдЯрд░реИрдХреНрд╢рди рдФрд░ рддрд░реНрдХ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЧреБрдЬрд░ рд░рд╣рд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЗрд╕реЗ рдЦреМрдлрдирд╛рдХ рдорд╛рдорд▓реЗ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ (рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐ рдЬрд┐рд╕рдХрд╛ рдкреЗрдлреНрд▓рдЧ рд╕реЗрдЯрд┐рдВрдЧ рд╡рд╣рд╛рдВ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ - pththon.exe?) рд▓реЗрдХрд┐рди OpenBLAS рдЦреБрдж рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдЬрдм 19041.450 рдЙрд░реНрдл тАЛтАЛрдкрд░ gcc 9.1.0 рдХреЗ msys2 mingw64 рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ 2004

@ рдорд╛рд░реНрдЯрд┐рди-рдлрд╝реНрд░реЙрдЧ рдЬреЛ рдкреНрд░рдЧрддрд┐ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред

рд╡рд┐рдВрдбреЛрдЬ / MSYS2 рдкрд░ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрд┐рдд рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдПрдХ рдЦрд░рдЧреЛрд╢ рдЫреЗрдж рдиреАрдЪреЗ рдЪрд▓рд╛ рдЧрдпрд╛ рддрд╛рдХрд┐ рдЖрдЧреЗ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рди рд╣реЛред

@ рдорд╛рд░реНрдЯрд┐рди-рдПрдлрдЖрд░рдЬреАрдмреА, рдПрдордПрд╕рд╡рд╛рдИ 2 рдЖрдзрд╛рд░рд┐рдд рдЦрд╕реНрддрд╛ рдкреИрдХреЗрдЬ рдХреЛ рдкреИрдХреНрдореИрди рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред Msys2 рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдкреИрдЪ рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ: https://github.com/msys2/MINGW-packages/tree/master/mingw-w64-python-numpy рдФрд░ https://github.com/msys2.MINGW-packages/tree / рдорд╛рд╕реНрдЯрд░ / MinGW-W64-openblasред

рдПрдХ рдирд╡реАрдирддрдо рддреНрд░рд┐рднреБрдЬ рдмреИрдардХ рдореЗрдВ рдпрд╣ рдПрдХ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рдордиреЗ рдЖрдпрд╛, рдФрд░ @hameerabbasi рдФрд░ рдореИрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред рд╣рдо рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИ?

@bashtage рдЖрдк editbin /STACK:3145728 python.exe рд╕рд╛рде рд╕реНрдЯреИрдХ рдХреЛ рдмрдбрд╝рд╛ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдХреНрдпрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╣рдо рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ OpenBLAS рдХреЗ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде NumPy рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рд╢рд╛рдпрдж рд╣рдорд╛рд░реЗ рдирд┐рд░реНрдорд╛рдг рдереЛрдбрд╝рд╛ рджреВрд░ рд╣реИрдВред

рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдмрд┐рд▓реНрдб рдореЗрдВ libopenblas.dll рдХреЛ рдмрджрд▓рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдпрд╛ рддреЛ рдореМрдЬреВрджрд╛ develop рд╢рд╛рдЦрд╛ рдпрд╛ 0.3.8 рдпрд╛ 0.3.9 рдЬреИрд╕реА рдкреБрд░рд╛рдиреА рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ рдХреЛрдИ рдРрд╕рд╛ рдкреНрд░рднрд╛рд╡ рд╣реЛ рдЬреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛ? (рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрднреА рдореЗрд░реЗ рдорди рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрд╕рд░ рдбрд╛рд▓ рд╕рдХрддреА рд╣реИ)ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВ рдЕрднреА рднреА msys2 рд╕рдВрдХреБрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрд╕реНрдерд╛рдкрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ self.ld_version рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рдВрдЪ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ 2004 рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЪрд▓реЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рд╕реЗ рдкрд╣рд▓реЗ рдЦрддреНрдо рд╣реЛ рдЧрдпрд╛

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, bashtage рдХреЗ "рдЫреЛрдЯреЗ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдЙрджрд╛рд╣рд░рдг" https://github.com/numpy/numpy/issues/16744#issuecomment -655430682 рд╕реЗ рдореЗрд░реЗ msys2 рд╕реЗрдЯрдЕрдк рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред (рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдБ, mingw64 / usr / lib рдореЗрдВ рдЙрдирдХрд╛ рд▓рд┐рдмреЛрдкреЗрдВрдмреНрд▓рд╛рд╕ рдПрдХ рд╕рд┐рдВрдЧрд▓-рдереНрд░реЗрдбреЗрдб 0.3.10 рд╣реИрд╕рд╡реЗрд▓ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)

@ martin-frbg рдХреНрдпрд╛ MSVC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ OpenBLAS рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╕рдВрднрд╡ рд╣реИ?

рд╕рд╛рджрд╛ MSVC? рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЦрд░рд╛рдм рд░реВрдк рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ MSVC рдЕрд╕реЗрдВрдмрд▓реА рдЧреБрдард▓реА рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рдХрд┐ рдЖрдкрдиреЗ TARGET = GENERIC рдХреЗ рд▓рд┐рдП OpenBLAS рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, # 16744 (рдЯрд┐рдкреНрдкрдгреА) рд╕реЗ рдмреИрд╢реЗрдЯ рдХрд╛ "рдЫреЛрдЯрд╛ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдЙрджрд╛рд╣рд░рдг" рдореЗрд░реЗ msys2 рд╕реЗрдЯрдЕрдк рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдмрдврд╝рд╛рддрд╛ рд╣реИред (рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдБ, mingw64 / usr / lib рдореЗрдВ рдЙрдирдХрд╛ рд▓рд┐рдмреЛрдкреЗрдВрдмреНрд▓рд╛рд╕ рдПрдХ рд╕рд┐рдВрдЧрд▓-рдереНрд░реЗрдбреЗрдб 0.3.10 рд╣реИрд╕рд╡реЗрд▓ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)

рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ NumPy рдФрд░ OpenBLAS рдХреЗ рдмреАрдЪ рдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдирд╛ рд╣реИред NumPy рдХреЗ 32-рдмрд┐рдЯ рдмрд┐рд▓реНрдб рдореЗрдВ рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдЬрд┐рди Microsoft рд▓реЛрдЧреЛрдВ рд╕реЗ рдмрд╛рдд рдХреА, рдЙрдирдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдереНрд░реЗрдб рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рд╕рдорд╕реНрдпрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд╢рдВрд╕рдиреАрдп рд╣реЛред рдпрд╣ рд╕рдордЭрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рдХреЙрд▓ рдореЗрдВ рдЧрд▓рдд рдореВрд▓реНрдп рдХреИрд╕реЗ рдореМрдЬреВрдж рд╣реИ рдФрд░ рдлрд┐рд░ рдмрд╛рдж рдХреА рдХреЙрд▓ рдореЗрдВ рд╕рд╣реА рд╣реИред

рд╡рд┐рдВрдбреЛрдЬ / MSYS2 рдкрд░ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрд┐рдд рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдПрдХ рдЦрд░рдЧреЛрд╢ рдЫреЗрдж рдиреАрдЪреЗ рдЪрд▓рд╛ рдЧрдпрд╛ рддрд╛рдХрд┐ рдЖрдЧреЗ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рди рд╣реЛред

рдпрд╣ рдПрдХ рдкреАрдбрд╝рд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдЗрд╕реЗ рдореВрд▓ рд░реВрдк рд╕реЗ .a рдлрд╝рд╛рдЗрд▓реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https://github.com/MacPython/openblas-libbl- рд╕реЗ рдЪрд░рдгреЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдлрд┐рд░ https://github.com/numpy/numpy/nlob/master/ рд╕реЗ рдЪрд░рдгреЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред NumPy рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП

DLL рдмрд┐рд▓реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ, рдПрдХ рдРрдкрд┐рд╡рд░ рдЦрд╛рддрд╛ рдЦреЛрд▓рдирд╛, рдФрд░ рдлрд┐рд░ https://github.com/MacPython/openblas-libs рдХреЛ рдХреНрд▓реЛрди рдХрд░рдирд╛

Https://github.com/MacPython/openblas-libs рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, OpenBLAS INTERFACE64=1 ред рдпрд╣ Msys2 рдмрд┐рд▓реНрдб OpenBLAS рдФрд░ numpy рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИред

@carlkl рдпрд╣ рд╕рдорд╕реНрдпрд╛ NumPy рдпрд╛ OpenBLAS рдХреЗ Msys2 рдмрд┐рд▓реНрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдпрд╣ Win32 / AMD64 рдмрд┐рд▓реНрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдЬреЛ Msys2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдлреЛрд░рдЯреНрд░рд╛рди рд╕реНрд░реЛрддреЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрдлрд╝рд░рд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ MS рдХреЗ lib.exe рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХрд▓рд┐рдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ Win32 DLL рдмрдирд╛рддрд╛ рд╣реИред

@bashtage рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ https://github.com/numpy/numpy/issues/16744#issuecomment -689785607, рдХрд┐ msys2 рдХреЗ рдмрд╛рдж segfault рджреЛрдмрд╛рд░рд╛ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ред рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ msys2 рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ msys2 рдореЗрдВ рдУрдкрдирдмреНрд▓рд╕ рдФрд░ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдмрд╛рдЗрдирд░реА рдкреИрдХреЗрдЬ рджрд┐рдП рдЧрдП рд╣реИрдВред

рдореБрдЭреЗ рдХреЛрдИ рдЕрдВрджрд╛рдЬрд╛ рдирд╣реАрдВ рд╣реИ, рдЕрдЧрд░ 64 рдмрд┐рдЯ рдХреЗ рдЦрдВрднреЗ рдХреЛ рдПрдордПрд╕рд╡реАрд╕реА рдХреЗ рд╕рдорд╛рди рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

BTW: рдореИрдВ рдЭрдВрдбрд╛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЭрдВрдбрд╛ -fdefault-integer-8 рдирд╣реАрдВ рдкрд╛ рд╕рдХрддрд╛ред
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдХреЛрдб -fdefault-integer-8 рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ ABI рдЗрд╕ рдзреНрд╡рдЬ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИред

рдПрдХ рдФрд░ рдкрд╣рд▓реВ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддрд╛ рд╣реИ: рд╢рд╛рдпрдж -fdefault-integer-8 рдХреЛ -mcmodel=large рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПред

EDIT: рдпрд╛рдж рд░рдЦреЗрдВ: Windows64 рдореЗрдВ LLP64 рдореЗрдореЛрд░реА рдореЙрдбрд▓ рд╣реИ, ILP64 рдирд╣реАрдВред
LLP64 рдХрд╛ рдЕрд░реНрде рд╣реИ: рд▓рдВрдмрд╛: 32 рдмрд┐рдЯ, рдкреЙрдЗрдВрдЯрд░: 64 рдмрд┐рдЯ

рддреЛ, Win10-2004 рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реБрдкреАрд░рд┐рдпрд░ рдмрд┐рд▓реНрдб рдХрд┐рд╕ рдЖрдХрд╛рд░ рдХреЗ рдкреВрд░реНрдгрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ? рдпрд╣ рдмреЗрд╣рддрд░ рдореИрдЪ рдерд╛ рдХрд┐ рдУрдкрдирдмреАрдПрд▓рдПрдПрд╕ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди IIRC рдпрд╣ рд╡рд┐рд╖рдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдкрд╣рд▓реЗ рдЖрдпрд╛ рдерд╛ (рдФрд░ рдПрдХ рдмреЗрдореЗрд▓ рд╢рд╛рдпрдж рд╡рд┐рдВрдбреЛрдЬ рдкреИрдЪрд▓реЗрд╡рд▓ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рдЯреВрдЯрдирд╛ рдкреИрджрд╛ рдХрд░реЗрдЧрд╛)

Https://github.com/MacPython/openblas-libs (appveyor.yml рджреЗрдЦреЗрдВ) рдХреЗ рд╕рд╛рде рдХрдо рд╕реЗ рдХрдо рдУрдкрдирдмреНрд▓рд╛рд╕ рдХреЛ рддреАрди рд╡реЗрд░рд┐рдПрдВрдЯ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • 32 рдмрд┐рдЯ
  • 64 рдмрд┐рдЯ
  • INTEGER64 рдХреЗ рд╕рд╛рде 64 рдмрд┐рдЯ

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рд╕реБрдиреНрди 64 рдмрд┐рдЯ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

_ рдФрд░ рдПрдХ рдмреЗрдореЗрд▓ рд╢рд╛рдпрдж рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рдЯреВрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдХрд░реЗрдВрдЧреЗ рднрд▓реЗ рд╣реА рд╡рд┐рдВрдбреЛрдЬ рдкреИрдЪрд▓реЗрд╡реЗрд▓_

-fdefault-integer-8 рдХреЗрд╡рд▓ рд▓реИрдкреИрдХ рдХреЗ рдлреЛрд░рдЯреНрд░рд╛рди рднрд╛рдЧ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдореЗрдореЛрд░реА рдореЙрдбрд▓ (LLP64) рдХреЛ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдореЗрдВ рдлреЛрд░рдЯреНрд░рд╛рди рд▓реИрдкреИрдХ рднрд╛рдЧреЛрдВ рдХреЗ рдмрд╛рд╣рд░ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдЙрдореНрдореАрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

рд╣рдореНрдо,

https://github.com/numpy/numpy/blob/60a21a35210725520077f13200498e2bf3198029/azure-pipelines.yml рдХрд╣рддреЗ рд╣реИрдВ

- job: Windows pool: vmImage: 'VS2017-Win2016' ... Python38-64bit-full: PYTHON_VERSION: '3.8' PYTHON_ARCH: 'x64' TEST_MODE: full BITS: 64 NPY_USE_BLAS_ILP64: '1' OPENBLAS_SUFFIX: '64_'
рдЕрдиреНрдп рд╕рднреА рд╕рдВрд╕реНрдХрд░рдг ( Python36-64bit-full , Python37-64bit-full ) NPY_USE_BLAS_ILP64 рдХреЗ рдмрд┐рдирд╛ рдирд┐рд░реНрдорд┐рдд рд╣реИрдВред

Pypi.org рдкрд░ Numpy binaries рд╕рднреА 32-рдмрд┐рдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдУрдкрдирдмреНрд▓рд╕ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд┐рдд рд╣реИрдВред https://github.com/MacPython/numpy-wheels/blob/v1.19.x/azure/windows.yml

рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рдЯреНрд░рд╛рди рдмрдирд╛рдо MSVC рд╡рд┐рд╡рд░рдг, рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВред Microsoft lib.exe Openblas DLL рдХреЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕рднреА рдорд┐рдВрдЧрд╡ рдЯреВрд▓рдХрд┐рди рд╣реИред Numpy openblas.a рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ gfortran рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ DLL рдмрдирд╛рддрд╛ рд╣реИред ред рд╣реИ рдХрд┐ .lib рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ gfortran-рдЙрддреНрдкрд╛рджрд┐рдд DLL рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред

рдПрдХ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдЬреЛ рдЧрд▓рдд рд╣реЛ рд╕рдХрддреА рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдорд┐рдВрдЧрд╡ рдХреЗ рдмреАрдЪ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорд┐рдВрдЧрд╡ рд╕рдВрд╕реНрдХрд░рдг рдмреЗрдореЗрд▓ рд╣реИ рдЬреЛ рд╕реНрдЯреИрдЯрд┐рдХ рдУрдкрдирдмреНрд▓рд╛рд╕.рдП рдЖрд░реНрдЯрд┐рдлрд╝рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдорд┐рдВрдЧрд╡ рд╡рд░реНрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╕реБрдкреАрд╣ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

choco install -y mingw --forcex86 --force --version=5.3.0 рдЙрдкрдпреЛрдЧ windows.yml рдкреБрд░рд╛рдирд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред 7.3.0 рдпрд╛ 8.1.0 рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рди рдХрд░реЗрдВ? рдореИрдВ рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдпрд╛рдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рдореИрдВрдиреЗ рджреЛ-рддреАрди рд╕рд╛рд▓ рдкрд╣рд▓реЗ gcc-5.x рдХреЗ рд╕рд╛рде рдХреА рдереАрдВред

choco install -y mingw --forcex86 --force --version = 5.3.0 windows.yml рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдкреБрд░рд╛рдирд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ

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

рдЕрдиреНрдп рд╕рднреА рд╕рдВрд╕реНрдХрд░рдг ( Python36-64bit-full , Python37-64bit-full ) NPY_USE_BLAS_ILP64 рдХреЗ рдмрд┐рдирд╛ рдмрдирд╛рдП рдЧрдП рд╣реИрдВред

рдкрд╛рдпрдерди 3.6 рдФрд░ 3.8 рдкрд░ рд╕рдорд╛рди рддреНрд░реБрдЯрд┐рдпрд╛рдВред

рдПрдХ рд╡рд┐рдЪрд╛рд░ рдмрдЪрд╛ рд╣реИ (рдореИрдВ рдЕрдВрдзреЗрд░реЗ рдореЗрдВ рдЦреЛрдж рд░рд╣рд╛ рд╣реВрдБ):

OpenBLAS рдЕрдм -fno-optimize-sibling-calls рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, https://github.com/xianyi/OpenBLAS/issues/2154 , https://github.com/xianyi/OpenBLAS/pull/2n7 рдФрд░ https: // gcc рджреЗрдЦреЗрдВ .gnu.org / рдмрдЧрдЬрд┐рд▓рд╛ / show_bug.cgi? id = 90,329ред
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдпрд╣ рднреА рджреЗрдЦреЗрдВ: https://gcc.gnu.org/legacy-ml/fortran/2019-05/msg00181.html

Numpy рдиреЗ рдЗрд╕ рдЭрдВрдбреЗ рдХреЛ рдЕрдкрдиреЗ рдЧрдбрд╝рдмрдбрд╝реА рд╡рд╛рд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ MSVC рдХреЗ рд╕рд╛рде рд╕рдВрдХрд░реА рд╕рдВрдХрд▓рд┐рдд рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕реБрдиреНрди рдХреЗ рд╕рд╛рде рдШрдмрд░рд╛рд╣рдЯ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдлрд┐рд░ рд╕реЗ рдПрдХ рдЧрд▓рдд рдпрд╛рддреНрд░рд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

Pypi.org рдкрд░ Numpy binaries рд╕рднреА 32-рдмрд┐рдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдУрдкрдирдмреНрд▓рд╕ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд┐рдд рд╣реИрдВред https://github.com/MacPython/numpy-wheels/blob/v1.19.x/azure/windows.yml

рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕реЗ рдЕрд▓рдЧ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдпрд╣ рдПрдХ рдЬреЛрдЦрд┐рдо рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред

рдХреНрдпрд╛ рд╣рдо рдПрдЬрд╝реНрдпреЛрд░ рдмрд┐рд▓реНрдб рдХреА рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ? рдЗрд╕рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдкрд╣рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣рд╛рдБ рдореЗрд░реА рдПрдХрдорд╛рддреНрд░ рдЪрд┐рдВрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореБрдХреНрдд рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп рд╕реАрдорд╛ рдмрд╣реБрдд рдЫреЛрдЯреА IIRC, 1GB рд╣реИ, рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЬрдм рдЖрдк рдЗрд╕реЗ рдорд╛рд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ (FIFO рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рддреНрд░реБрдЯрд┐ рд╕рд╣рд┐рдд рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред

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

рд╣рдо рд╕рднреА рд╕рдорд░реНрдерд┐рдд рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ NPY_USE_BLAS_ILP64 рдмрд┐рдирд╛ рд╡рд┐рдВрдбреЛрдЬрд╝ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ NPY_USE_BLAS_ILP64 рд╕рд╛рде рдЕрдЬрдЧрд░ 3.8 рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, https://github.com/numpy/numpy/blob/b1.19.2/azure рджреЗрдЦреЗрдВ -pipelines.yml # L195ред рдЗрд╕рд▓рд┐рдП 32-рдмрд┐рдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдУрдкрдирдмреНрд▓рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рд╛рдкреНрддрд╛рд╣рд┐рдХ рдмрд┐рд▓реНрдб рд╕рд╣реА рд╣реИрдВред

рдХреНрдпрд╛ рд╣рдо рдПрдЬрд╝реНрдпреЛрд░ рдмрд┐рд▓реНрдб рдХреА рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?

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

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

рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ 2004 рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рд░реЗрдкреЛ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдореЗрдВ рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдкрдХрдбрд╝рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред

рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдЖрдк рдЕрдкрдиреЗ рд░реЗрдкреЛ рдмреИрд╢реНрдЯреЗрдЬ / рд╕реБрдкреА рдореЗрдВ рдПрдЬрд╝реНрдпреЛрд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЪрд╛рд▓реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА: рдкрд╣рд▓рд╛ рдХреЙрд▓ рдЬреЛ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ OpenBLAS рдХреЗ рдЕрдВрджрд░ DNRM2 рдПрдХ NAN рджреЗрддрд╛ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рджреЛрд╣рд░рд╛рдиреЗ рдпреЛрдЧреНрдп рд╣реИ: рд╣рд░ рдХреЙрд▓

a = np.arange(13 * 13, dtype=np.float64).reshape(13, 13)
a = a % 17
np.linalg.eig(a)

** On entry to DGEBAL parameter number 3 had an illegal value рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ " DNRM2 рд╡рд╛рдкрд╕ рдирд╛рди" рдХрд╣рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИред mod рд╕рдВрдЪрд╛рд▓рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЗрд╕рдХреЗ рдмрд┐рдирд╛ eig рдХреЙрд▓ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

mod ufunc рдФрд░ OpenBLAS рдХреЗ рдмреАрдЪ рдХреЛрдИ рдмрд╛рддрдЪреАрдд рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддреА рд╣реИ?

mod рд╕рдВрдЪрд╛рд▓рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЗрд╕рдХреЗ рдмрд┐рдирд╛ eig рдХреЙрд▓ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рддреНрд░реБрдЯрд┐ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЗрд╕ рд╕рдЯреАрдХ рд╕рдорд╛рди рд╕рд░рдгреА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ?

рдпрд╣ рдХреЛрдб рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:

a = np.array([x % 17 for x in range(13 * 13)], dtype=np.float64)
a.shape = (13, 13)
np.linalg.eig(a)

рдХреНрдпрд╛ рдкреВрд░реНрд╡рд╡рд░реНрддреА mod рдПрдХ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдПрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдЫреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ? рдореИрдВрдиреЗ рдлрд┐рд░ рд╕реЗ nrm2.S рдХреА рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЕрд╕реЗрдВрдмрд▓реА XORing рд╕реЗ рдХреБрдЫ рдореБрджреНрджреЛрдВ рдХреЛ рдЕрдкрдиреЗ рдкрд╛рд╕ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХреНрд▓рд┐рдпрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдерд╛, рдЬреЛ NaN рдкрд░ рд╡рд┐рдлрд▓ рд╣реЛрдВрдЧреЗред

рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП npy_divmod рдордВрдЧрд╛рдиреЗ рдкрд░ % рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред

... рдЬреЛ, рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ npy_fmod() рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ , рдЬреЛ a % 17; np.linalg.eig(a) рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЛ рдЪрд▓рд╛рддреЗ рд╕рдордп OpenBLAS рд╕реЗ "рдЕрд╡реИрдз рдорд╛рди" рд╕рдВрджреЗрд╢ рдорд┐рд▓рддрд╛ рд╣реИ
рдХреЛрдб | рдкрд░рд┐рдгрд╛рдо
--- | ---
mod = npy_fmod@c@(a, b); (рдореВрд▓ рдХреЛрдб) | рддреНрд░реБрдЯрд┐
mod = 100; //npy_fmod@c@(a, b); | рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ
mod = npy_fmod@c@(a, b); mod = 100.0; | рддреНрд░реБрдЯрд┐

рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ MSVC рд╕реЗ fmod рдХреБрдЫ рдРрд╕рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ OpenBLAS рдХреЛ рднреНрд░рдорд┐рдд рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдФрд░ рдЕрдЬреАрдм рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП fmod рдХреЗ рдПрдХ рднреЛрд▓реЗ (рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЖрдкреВрд░реНрддрд┐ рдирд╣реАрдВ) рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдпрд╛ рд╕рд┐рд░реНрдл HAVE_MODF рд╕реЗ 0 рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░реЗрдВред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ fmod рдХрд╛ рдПрдХ рднреЛрд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдХреНрдпрд╛ рд╣рдо?

рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдПрдХ HAVE_MODF рдореИрдХреНрд░реЛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрде рдХрд╣рд╛рдБ рдЬрд╛рддрд╛ рд╣реИ?

Iike рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдбрдмрд▓ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрддрд╛ рд╣реИ рдпрджрд┐ рдлреНрд▓реЛрдЯ рдФрд░ рд▓рдВрдмреЗ рдбрдмрд▓ рдЧрд╛рдпрдм рд╣реИрдВред рд╕реБрдиреНрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрдмрд▓ рд╕рдВрд╕реНрдХрд░рдг рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИред рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрднрд╡рддрдГ рд╕рдВрдХрд▓рдХ рдЗрдирд▓рд╛рдЗрди рдлрд╝рдВрдХреНрд╢рдВрд╕, ISTR рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдмрд╣реБрдд рдкрд╣рд▓реЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдереАред

рдореИрдВ "рд╕рд╛рдмрд┐рдд" рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ fmod рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, рдЬреЛ ucrtbase.dll рд╕реЗ рдЖрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдХрд╛рдо рд▓рд┐рдЦрд╛, рдЬреЛ ctypes рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЛ dll рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реАрдзреЗ fmod рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдг рдЕрднреА рднреА рд╡рд┐рдлрд▓ред рдлрд┐рд░ рдореИрдВрдиреЗ ucrtbase.dll (рдХреЗрд╡рд▓ fmod рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП) рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ред рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рджреГрд╢реНрдп рд╕реНрдЯреВрдбрд┐рдпреЛ рдордВрдЪ рдкрд░ рдПрдХ

diff --git a/numpy/core/src/npymath/npy_math.c b/numpy/core/src/npymath/npy_math.c
index 404cf67b2..675905f73 100644
--- a/numpy/core/src/npymath/npy_math.c
+++ b/numpy/core/src/npymath/npy_math.c
@@ -7,3 +7,27 @@

 #define NPY_INLINE_MATH 0
 #include "npy_math_internal.h"
+#include <Windows.h>
+
+typedef double(*dbldbldbl)(double, double);typedef double(*dbldbldbl)(double, double);
+
+dbldbldbl myfmod = NULL;
+
+typedef double(*dbldbldbl)(double, double);
+extern dbldbldbl myfmod;
+
+
+double __fmod(double x, double y)
+{
+    if (myfmod == NULL) {
+        HMODULE dll = LoadLibraryA("ucrtbase_old.dll");
+        //HMODULE dll = LoadLibraryA("c:\\windows\\system32\\ucrtbase.DLL");
+         myfmod = (dbldbldbl)GetProcAddress(dll, "fmod");
+    }
+    return myfmod(x, y);
+}
+
+long double __fmodl(long double x, long double y) { return fmodl(x, y); }
+float __fmodf(float x, float y) { return fmodf(x, y); }
+
+
diff --git a/numpy/core/src/npymath/npy_math_internal.h.src b/numpy/core/src/npymath/npy_math_internal.h.src
index 18b6d1434..9b0600a34 100644
--- a/numpy/core/src/npymath/npy_math_internal.h.src
+++ b/numpy/core/src/npymath/npy_math_internal.h.src
@@ -55,6 +55,11 @@
  */
 #include "npy_math_private.h"

+double __fmod(double x, double y);
+long double __fmodl(long double x, long double y);
+float __fmodf(float x, float y);
+
+
 /*
  *****************************************************************************
  **                     BASIC MATH FUNCTIONS                                **
@@ -473,8 +478,8 @@ NPY_INPLACE @type@ npy_@kind@@c@(@type@ x)
 /**end repeat1**/

 /**begin repeat1
- * #kind = atan2,hypot,pow,fmod,copysign#
- * #KIND = ATAN2,HYPOT,POW,FMOD,COPYSIGN#
+ * #kind = atan2,hypot,pow,copysign#
+ * #KIND = ATAN2,HYPOT,POW,COPYSIGN#
  */
 #ifdef HAVE_@KIND@@C@
 NPY_INPLACE @type@ npy_@kind@@c@(@type@ x, @type@ y)
@@ -484,6 +489,13 @@ NPY_INPLACE @type@ npy_@kind@@c@(@type@ x, @type@ y)
 #endif
 /**end repeat1**/

+#ifdef HAVE_FMOD@C@
+NPY_INPLACE @type@ npy_fmod@c@(@type@ x, @type@ y)
+{
+    return __fmod@c@(x, y);
+}
+#endif
+
 #ifdef HAVE_MODF@C@
 NPY_INPLACE @type@ npy_modf@c@(@type@ x, @type@ *iptr)
 {

рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк fmod рдХреЙрд▓ рдХреЗ рдмрд╛рдж рдХреБрдЫ рдХреЛрдб рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ ST(0) рдореЗрдВ рдиреИрдиреЛ рди рд╣реЛ? рдпрд╛ рдЗрд╕реЗ рдиреИрди рд╕рд┐рдВрдереИрдЯрд┐рдХ рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ?
рдХреНрдпрд╛ рдХреЙрд▓рд┐рдВрдЧ рдХрдиреНрд╡реЗрдВрд╢рди рдХреБрдЫ рдмрд╛рдзрд╛рдУрдВ рдХреЛ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдХрд┐ рдЗрди рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдореИрдВ "рд╕рд╛рдмрд┐рдд" рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ fmod рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, рдЬреЛ ucrtbase.dll рд╕реЗ рдЖрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдХрд╛рдо рд▓рд┐рдЦрд╛, рдЬреЛ ctypes рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЛ dll рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реАрдзреЗ fmod рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдг рдЕрднреА рднреА рд╡рд┐рдлрд▓ред рдлрд┐рд░ рдореИрдВрдиреЗ ucrtbase.dll (рдХреЗрд╡рд▓ fmod рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП) рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ред рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рджреГрд╢реНрдп рд╕реНрдЯреВрдбрд┐рдпреЛ рдордВрдЪ рдкрд░ рдПрдХ

рдХрдо рд╕реЗ рдХрдо рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдПрдХ рдПрдЬрд╝реНрдпреЛрд░ рдЦрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╢рд╛рдпрдж рдпрд╣рд╛рдБ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рд╣реИрдВ, рдЗрд╕реЗ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдореВрд▓ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдПрдЬрд╝реБрд░ рдПрдордПрд▓ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рд╕рдВрдкрд░реНрдХреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рд╡реЗ рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХрдо рд╕реЗ рдХрдо рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдПрдХ рдПрдЬрд╝реНрдпреЛрд░ рдЦрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╢рд╛рдпрдж рдпрд╣рд╛рдБ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рд╣реИрдВ, рдЗрд╕реЗ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЯрд┐рдк рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЙрддреНрдХреАрд░реНрдг!

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ fmod рдХрд╛ рдПрдХ рднреЛрд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдХреНрдпрд╛ рд╣рдо?

рдирд╣реАрдВред рдпрд╣ рдПрдХ рдореБрд╢реНрдХрд┐рд▓ рдХрд╛рдо рд╣реИ рдЬреЛ IEEE-754 рдХрд▓реНрдкрдирд╛ рджреНрд╡рд╛рд░рд╛ рдХреБрдЫ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрд╣ рднреА рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИ, рдЬреЛ рд╢рд╛рдпрдж рдХрд▓реНрдкрдирд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред

fmod рдХреА рдХрдбрд╝реА рдореЗрд╣рдирдд fprem x87 рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ VS2019 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рднреА - рджреЗрдЦреЗрдВ @mattip рдХреА https: //gist.github-mattip / d9e1f3f88ce77b9fde6a285d585c738eред ( fprem1 remainder рд╡реЗрд░рд┐рдПрдВрдЯ btw рд╣реИред)

MMX рдпрд╛ SSE рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рджреЗрдЦрднрд╛рд▓ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП - рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рд╣реИ: https://stackoverflow.com/questions/48332763/where-does-the-xmm-instruction-divsd-store-the-remainderред

Https://github.com/xianyi/OpenBLAS/issues/2709#issuecomment -702634696 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХреБрдЫ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐: рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рдЗрди рд╕рднреА рдХреЛ gcc (mingw-w64) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред OpenLIBM MSVC AFAIK рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЗрдирд▓рд╛рдЗрди рдЕрд╕реЗрдВрдмрд▓рд░ рдХреЛрдб рдХреЛ MSVC рдХреЗ рд╕рд╛рде рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдПрдХ (mingw-w64) рдФрд░ рдирд┐рд░реНрдорд╛рдг (MSVC) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╕реБрдкреАрд░рд┐рдпрд░ рдмрд┐рд▓реНрдб рдХреЗ рджреМрд░рд╛рди рдПрдХ fmod рд╕рд╣рд╛рдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк fmod рдХреЙрд▓ рдХреЗ рдмрд╛рдж рдХреБрдЫ рдХреЛрдб рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ ST (0) рдореЗрдВ рдиреИрдиреЛ рди рд╣реЛ? рдпрд╛ рдЗрд╕реЗ рдиреИрди рд╕рд┐рдВрдереИрдЯрд┐рдХ рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ? рдХреНрдпрд╛ рдХреЙрд▓рд┐рдВрдЧ рдХрдиреНрд╡реЗрдВрд╢рди рдХреБрдЫ рдмрд╛рдзрд╛рдУрдВ рдХреЛ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдХрд┐ рдЗрди рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдкрд░ OpenBLAS рдореЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЯреБрдХрдбрд╝рд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдереЛрдбрд╝рд╛ рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯ-рдЕрдк рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдореЗрд░реА рдорд╕реНрдд рдЕрд╕реЗрдВрдмрд▓реА рдлреВ рдХрдордЬреЛрд░ рд╣реИред рдореИрдВрдиреЗ рдПрдХ рдРрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ fldz рдХрдИ рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдореБрдЭреЗ рдЕрдкрд╡рд╛рдж рдорд┐рд▓рддрд╛ рд╣реИред рдорджрдж?

lots_of_fldz.asm :

.code
lots_of_fldz proc
    fldz
    fldz
    fldz
    fldz
    fldz
    fldz

lots_of_fldz endp
end

рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ:

#include <iostream>
#include <Windows.h>

extern "C" {
int lots_of_fldz(void);
}

int main()
{
    typedef double(*dbldbldbl)(double, double);
    //HMODULE dll = LoadLibraryA("D:\\CPython38\\ucrtbase_old.dll");
    HMODULE dll = LoadLibraryA("c:\\windows\\system32\\ucrtbase.DLL");
    if (dll == NULL) {
        return -1;
    }
    dbldbldbl myfmod;
    myfmod = (dbldbldbl)GetProcAddress(dll, "fmod");
    double x = 0.0, y = 17.0;
    double z = x + y;
    z = myfmod(x, y);
    lots_of_fldz();
    /* CRASH */
    std::cout << "Hello World!\n";
    return 0;
}

рдЙрдиреНрд╣реЗрдВ VisualStudio рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдбрд╛рд▓реЗрдВ, рдФрд░ рдЗрд╕ рдЧрд╛рдЗрдб рдХреЛ рдлреЙрд▓реЛ

@mattip , рдореИрдВрдиреЗ 64-рдмрд┐рдЯ fmod рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕реЗрдВрдмрд▓рд░ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЬреЛ рд╕рдорд╛рди text: рд╕реЗрдЧрдореЗрдВрдЯ рдмрдирд╛рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ mingw-w64 (64-рдмрд┐рдЯ) рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд fmod рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИред рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ рдЕрдЧрд░ рдпрд╣ рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА fmod рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдЗрд╕реЗ рдПрдХ рдХреЛрд╢рд┐рд╢ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд░рд┐рдгрд╛рдореА obj-file рдХреЛ npymath.lib рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

fmod.asm: (64-рдмрд┐рдЯ)

.code
fmod PROC
    sub    rsp , 18h
    movsd  QWORD PTR [rsp+8h] , xmm0
    fld    QWORD PTR [rsp+8h]
    movsd  QWORD PTR [rsp+8h] , xmm1
    fld    QWORD PTR [rsp+8h]
    fxch   st(1)
L1:
    fprem
    fstsw  ax
    sahf
    jp     L1
    fstp   st(1)
    fstp   QWORD PTR [rsp+8h]
    movsd  xmm0 , QWORD PTR [rsp+8h]
    add    rsp,18h
    ret
fmod endp
end

masm рдХрдорд╛рдВрдб: ml64.exe /c fmod.asm fmod.obj рдмрдирд╛рддрд╛ рд╣реИ (ml64.exe рдХрд╛ 64-рдмрд┐рдЯ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ)

``

objdump -D fmod.obj
....
Disassembly of section .text$mn:
0000000000000000 <fmod>:
   0:   48 83 ec 18            sub    $0x18,%rsp
   4:   f2 0f 11 44 24 08      movsd  %xmm0,0x8(%rsp)
   a:   dd 44 24 08            fldl   0x8(%rsp)
   e:   f2 0f 11 4c 24 08      movsd  %xmm1,0x8(%rsp)
  14:   dd 44 24 08            fldl   0x8(%rsp)
  18:   d9 c9                  fxch   %st(1)
  1a:   d9 f8                  fprem
  1c:   9b df e0               fstsw  %ax
  1f:   9e                     sahf
  20:   7a f8                  jp     1a <fmod+0x1a>
  22:   dd d9                  fstp   %st(1)
  24:   dd 5c 24 08            fstpl  0x8(%rsp)
  28:   f2 0f 10 44 24 08      movsd  0x8(%rsp),%xmm0
  2e:   48 83 c4 18            add    $0x18,%rsp
  32:   c3                     retq

@carlkl рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЕрд╕реЗрдВрдмрд▓рд░ рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдХреЗ рд╕рд╛рде рдЦреБрд╢ рд░рд╣реВрдВрдЧрд╛ рдЬреЛ рдПрд╕рдЯреА (рдПрди) рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рд╣рдо рдУрдмреАрдПрд▓рдПрдПрд▓рдПрд╕ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ x86_64 рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЬ fmod рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рдХрд╛рд░рдг рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЦрдбрд╝реА рд╣реЛ рдЧрдИ, рдХрд▓ рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдХрд╛рд░реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд░рд┐рдЯрд░реНрди рдкрд░ ST(N) рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдЕрдЧрд░ рдРрд╕реА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ fmod рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рдирд╣реАрдВ рд╣реИ рдФрд░ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдиреЗ рдЙрдиреНрд╣реЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП OpenBLAS рдореЗрдВ рдПрдХ рдЕрд╕рдлрд▓рддрд╛ рдЙрдЬрд╛рдЧрд░ рдХреА рдХрд┐ рд╣рдореЗрдВ рдпрд╛ рддреЛ рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдпрд╛ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВрдиреЗ рдКрдкрд░ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ fldz рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

@ рдореИрдордЯрд┐рдк , рдореЗрд░реЗ https://stackoverflow.com/questions/19892215/free-the-x87-fpu-stack-ia32/33575875

Https://docs.microsoft.com/de-de/cpp/build/x64-calling-conference?view=vs-2019 :

The x87 register stack is unused. It may be used by the callee, but consider it volatile across function calls.

рдЕрдиреБрдорд╛рди рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдЙрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП OpenBLAS nrm2.S (PROFCODE рдореИрдХреНрд░реЛ рдХреЗ рдмрд╛рдж) рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ fninit рднреА рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╛
рд╕рд┐рд╕реНрдЯрдо рд╡реА рдПрдкреНрд▓реАрдХреЗрд╢рди рдмрд╛рдЗрдирд░реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕AMD64 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдкреНрд▓реАрдореЗрдВрдЯрдбреНрд░рд╛рдлреНрдЯ рд╕рдВрд╕реНрдХрд░рдг 0.99.6

_ MXCSR рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рдХрдВрдЯреНрд░реЛрд▓ рдмрд┐рдЯреНрд╕ рдХреИрд▓реА-рд╕реЗрд╡ (рдХреЙрд▓ рдХреЗ рджреМрд░рд╛рди рд╕рдВрд░рдХреНрд╖рд┐рдд) рд╣реЛрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд╕реНрдЯреЗрдЯрд╕ рдмрд┐рдЯреНрд╕ рдХреЙрд▓рд░-рд╕реЗрд╡ (рд╕рдВрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ) рд╣реЛрддреЗ рд╣реИрдВ ред_

_ X87 рд╕реНрдерд┐рддрд┐ рд╢рдмреНрдж рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЙрд▓рд░-рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрдмрдХрд┐ x87 рдирд┐рдпрдВрддреНрд░рдг рд╢рдмреНрдж рдХреИрд▓реА-рд╕реЗрд╡ рд╣реИ ред_

_ рд╕рднреА x87 рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рдХреЙрд▓рд░-рд╕реЗрд╡ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП MMX рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреИрд▓реЗрдЬрд╝ рддреЗрдЬрд╝ рдорд╣рд┐рд▓рд╛ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред_

рд╡рд┐рдВрдбреЛрдЬ 64-рдмрд┐рдЯ рдХреЙрд▓рд┐рдВрдЧ рдХрдиреНрд╡реЗрдВрд╢рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рдЕрд▓рдЧ рд╣реИред

@ martin-frbg, fninit рдЦрддрд░рдирд╛рдХ рд╣реИ: The FPU control word is set to 037FH (round to nearest, all exceptions masked, 64-bit precision). X87 рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ рдХреНрдпрд╛ рдЖрдк рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ред

рдореИрдВ рдЗрд╕реЗ рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛, рдмрд╕ рдПрдХ рддреНрд╡рд░рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдПред рдЕрднреА рднреА рдХрд╛рдлреА рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рдУрдкрдирдмреАрдПрд▓рдПрдПрд╕ рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ "рд╕рдлрд╛рдИ" рд╕реЗ рдкрд╣рд▓реЗ "рд╕реНрд╡рдпрдВ" рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд┐рдВрдбреЛрдЬ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ Agner Fog рдХреЗ рдкрд╛рд╕ http://www.agner.org/optimize/calling_conventions.pdf рдкрд░ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХреЛ рдмреБрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╣реИ (FP рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ Win64 рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЪрд░реНрдЪрд╛ рдкреГрд╖реНрда 13 рдкрд░ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрдкреВрд░реНрдг рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЗ рджреМрд░рд╛рди рдмреБрдирд┐рдпрд╛рджреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреА рд╣реИ)ред

Https://github.com/numpy/numpy/issues/16744#issuecomment -703555555 рджреЗрдЦреЗрдВ:

The x87 register stack is unused. It may be used by the callee, but consider it volatile across function calls.

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ: x87 рдирд┐рд░реНрджреЗрд╢реЛрдВ (Win64) рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕реМрднрд╛рдЧреНрдпред рдпрд╛ рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ: рдиреБрдХрд╕рд╛рди рди рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд▓реА рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

рдПрдЪрдПрдо рдЬреЛ MSVC рд╕рдВрдХрд▓рдХ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд░реНрдгрди рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ I _think_ рд╣рдо рдПрдХ рдорд┐рдВрдЧ рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╣реИрдВ?

рдирд╣реАрдВ, Numpy (Pypi) рдХреЛ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ MSVC (рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2019) рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред OpenBLAS рдХреЗ рд▓рд┐рдП mingw-w64 (рдлреЛрд░рдЯреНрд░рд╛рди рднрд╛рдЧреЛрдВ рдХреЗ рдХрд╛рд░рдг) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕реНрдХрд┐рдк рдлреЛрд░рдЯреНрд░рд╛рди рднрд╛рдЧреЛрдВ рдХреЛ рдорд┐рдВрдЧрд╡-рдбрдмреНрд▓реНрдпреВ 64 рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, CPython рдФрд░ рдпрд╣ рдмрд╛рдЗрдирд░реА рдПрдХреНрд╕рдЯреЗрдВрд╢рди MSVC рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рдирдХреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред

BTW: рдпрд╣ https://github.com/mingwpy рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдХрд╛рд░рдг рдерд╛ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдЬреАрд╡рди рдореЗрдВ рд╡рд╛рдкрд╕ рд╕рд╛рдВрд╕ рд▓реЗ рд░рд╣рд╛ рд╣реИред (рдмреЗрд╢рд░реНрдо рдкреНрд▓рдЧ)

рдПрдХ рдФрд░ рдмрд┐рдЯ:

mingw-w64 MSVC рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдмреБрд▓рд╛ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рд▓рдЧрднрдЧ)ред рдХреЗрд╡рд▓ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдЕрдВрддрд░ x86 (32-рдмрд┐рдЯ) рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдЯреИрдХ рд╕рдВрд░реЗрдЦрдг рд╣реИрдВ - SIMD рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдФрд░ рд╕рдВрдпреБрдХреНрдд рд░рд╛рд╖реНрдЯреНрд░ рд╕рдорд░реНрдерд┐рдд vectorcall ред

рджрд┐рд▓рдЪрд╕реНрдкред x86 рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реИред рдХреЗрд╡рд▓ AMD64ред

рд╕реВрд░реНрдп рдкрд░, 4 рдЕрдХреНрдЯреВрдмрд░, 2020, 22:19 carlkl рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдПрдХ рдФрд░ рдмрд┐рдЯ:

mingw-w64 MSVC рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдмреБрд▓рд╛ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рд▓рдЧрднрдЧ)ред рдХреЗрд╡рд▓
рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдЕрдВрддрд░ x86 (32-рдмрд┐рдЯ) рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдЯреИрдХ рд╕рдВрд░реЗрдЦрдг рд╣реИрдВ -
SIMD рдФрд░ рд╕рдВрдпреБрдХреНрдд рд░рд╛рд╖реНрдЯреНрд░ рд╕рдорд░реНрдерд┐рдд рд╡реЗрдХреНрдЯрд░рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИред

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

MSVC 32 рдмрд┐рдЯ рд╢рд╛рдпрдж fpu рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ? рдореИрдВ рдмрд╕ nrm2_see2.S рджреНрд╡рд╛рд░рд╛ fpu рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП nrm2.S рдХрд╛ рд╕реНрдЯреЙрдкрдЧреИрдк рд░рд┐рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдХрд░реВрдБрдЧрд╛ (рдпрджрд┐ рдЗрд╕рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╣реИ, рддреЛ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЕрдкреНрд░рдпреБрдХреНрдд рд▓реЗрдХрд┐рди рдШрд╛рддрдХ рдЕрд╕реЗрдВрдмрд▓реА рд░реВрдЯреАрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдпрд╛ рдУрдПрд╕ рдХреЗ рд▓рд┐рдП рд╕рд╛рджреЗ рд╕реА рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЖрд╕рдкрд╛рд╕ рддреИрд░ рд░рд╣реА рд╣реИ) == рд╡рд┐рдВрдбреЛрдЬ рддреЛред (рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рдХреБрдЫ рдФрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ x86_64 рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╕рднреА рдкреБрд░рд╛рдиреЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд░реВрдЯ рдПрд╕рдПрд╕рдИ 2 рд╣реИрдВ)

@mattip , рд╢рд╛рдпрдж _fpreset divmod рдмрд╛рдж рдПрдХ рдХреЙрд▓ рдПрдХ рдЧрдбрд╝рдмрдбрд╝ FPU рд░рд╛рдЬреНрдп рд╕реЗ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ?

рд╢рд╛рдпрдж _fpreset рд▓рд┐рдП рдПрдХ рдХреЙрд▓

рдирд╣реАрдВрдВ, рдпрд╣ ST(N) рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рд░реАрд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рди рд╣реА рдпрд╣ рдЕрд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдкрдиреЗ _fninit рдПрдХ рдХреЛрд╢рд┐рд╢ рджреА? рдпрд╣ FPU рд╕реНрдЯреИрдХ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╛ ffree рдпрд╛ fstp fldz рдмрдЬрд╛рдп https://stackoverflow.com/questions/19892215/free-the-x87-fpu-stack-ia32/33575875 рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдореИрдВ рдЦреБрд╢реА рд╕реЗ рдХреЛрдбрд╛рдВрддрд░рдХ рдХрдорд╛рдВрдб рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдКрдкрд░ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреНрд░реИрд╢ред рдХрд┐рд╕реА рдХреЛ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдХреЛрдб рдХреЛ рд╕рд╣реА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, fninit рдПрдХ рдЕрдЪреНрдЫреЗ рдЙрдореНрдореАрджрд╡рд╛рд░ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ) рддреЛ рдореИрдВ OpenBLAS рдореЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ NumPy рдореЗрдВ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдбрд╛рдВрддрд░рдХ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдХреБрдЫ рдЗрд╕ рддрд░рд╣?

.code
reset_fpu proc
    finit
    fldz
reset_fpu endp
end

finit ist wait plus fninit ред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ, рдХрд┐ fldz fninit рдмрд╛рдж рдХреА рдЬрд░реВрд░рдд рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдХрд╣рд╛ рд╣реИ, рд╕рдВрдХрд▓рд┐рдд рдЕрд╕реЗрдВрдмрд▓реА рдХреЛрдб рдХрд╛рдо рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЧрд╛рдпрдм рд╣реИред рдпрд╣ рдЙрд╕ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдХрд┐рдпрд╛ рдерд╛ред exited with code -2147483645 рд╕рд╛рде рдХреЛрдб рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдкреВрд░реНрдг рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдЗрд╕реЗ (рдХрд▓) рдЖрдЬрдорд╛ рд╕рдХрддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрд╣ рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдорджрджрдЧрд╛рд░ рд╣реИрдВ:

https://www.website.masmforum.com/tutorials/fptute/fpuchap4.htm
(рдЗрд╕ рд╡рд┐рд╖рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдмрд╕реЗ рдкрдардиреАрдп рд╕рд╛рдЗрдЯ рдЬреЛ рдореБрдЭреЗ рдорд┐рд▓реА рдереА)

FLDZ (Load the value of Zero)

Syntax:    fldz  (no operand)

Exception flags: Stack Fault, Invalid operation

This instruction decrements the TOP register pointer in the Status Word 
and loads the value of +0.0 into the new TOP data register.

If the ST(7) data register which would become the new ST(0) is not empty, both 
a Stack Fault and an Invalid operation exceptions are detected, setting both flags 
in the Status Word. The TOP register pointer in the Status Word would still 
be decremented and the new value in ST(0) would be the INDEFINITE NAN.

A typical use of this instruction would be to "initialize" a data register intended 
to be used as an accumulator. Even though a value of zero could also be easily 
loaded from memory, this instruction is faster and does not need the use of memory. 

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ fldz рд╕реЗрдЧрдлреЙрд▓реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рд╕реЗрдВрдЯ (7) рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП:

FFREE (Free a data register)

Syntax:   free st(x)

This instruction modifies the Tag Word to indicate that the specified 80-bit data register 
is now considered as empty. Any data previously in that register becomes unusable. 
Any attempt to use that data will result in an Invalid exception being detected and an 
INDEFINITE value possibly being generated.

Although any of the 8 data registers can be tagged as free with this instruction, 
the only one which can be of any immediate value is the ST(7) register when 
all registers are in use and another value must be loaded to the FPU. 
If the data in that ST(7) is still valuable, other instructions should be used 
to save it before emptying that register. 

рдЖрдк рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

.code
reset_fpu proc
    ffree st(7)
    fldz
reset_fpu endp
end

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдореИрдВ рдЦреБрдж рдХреЛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рддрддреНрдХрд╛рд▓ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдХреЛрдбрд╛рдВрддрд░рдХ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИред рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ *.asm рдФрд░ main.c / main.cpp ) рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЪрд▓рд╛рддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдРрд╕рд╛ рд╣реЛ, рдореИрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЙрд▓реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рд╡реЗ рдУрдкрдмреНрд▓рд╕ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

@ рдордЯреНрдЯреАрдк , рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВред рдореИрдВ рдЗрд╕реЗ рдЬрд░реВрд░ рдЖрдЬрдорд╛рдКрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рдпрд╣ рдЖрднрд╛рд╕ рд╣реБрдЖ рдХрд┐ UCRT рдореЗрдВ fmod рдХрд╛ _tempory_ рдЦрд░рд╛рдм рд╡реНрдпрд╡рд╣рд╛рд░ _ Open_AS рджреНрд╡рд╛рд░рд╛ _healed_ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: https://github.com/xianyi/OpenBLAS/pull/2882 рдФрд░ рд╕реБрдкреА рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ, Win64 рдкрд░ FPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдордПрд╕ рдХреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╡рд┐рдВрдбреЛрдЬ рдкреИрдЪ рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реБрдиреНрди рдкреИрдЪ рдПрдХ рдУрдкрдирдмреАрдПрд▓рдПрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рд╣реЛрдЧрд╛, рдЬреЛ рдЖрдЧрд╛рдореА рдУрдкрдирдмреАрдПрд▓рдПрдПрд╕ рд░рд┐рд▓реАрдЬ рд╕реЗ рдкреБрд░рд╛рдиреА рдирд╣реАрдВ рд╣реИред

@ рдорддреНрддреА numpy/__init__.py рдореЗрдВ рдПрдХ рдкрд╡рд┐рддреНрд░рддрд╛ рдХреА рдЬрд╛рдБрдЪ рд╣реИред рдХреНрдпрд╛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдПрдХ рд╕рд░рд▓ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?

a = np.arange(13 * 13, dtype=np.float64).reshape(13, 13)
a = a % 17
va, ve = np.linalg.eig(a)

@ рдордЯреНрдЯреАрдк , рд╕реНрдирд┐рдкреЗрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬрд╣рд╛рдВ рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХреВрдВрдЧрд╛ред рдЕрднреА рдореИрдВ рдХрдо рд╕реЗ рдХрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд▓реИрдкрдЯреЙрдк рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдореИрдВ рд▓рдЧрднрдЧ рдХреБрдЫ рднреА рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рд╣рдордиреЗ OpenBLAS v0.3.12 рдореЗрдВ рдПрдХ рдЕрджреНрдпрддрди рдХреЛ рдорд░реНрдЬ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдмрд┐рд▓реНрдб + рд╡рд┐рдВрдбреЛрдЬрд╝ рдЕрдкрдбреЗрдЯ 2004 рдЯреЗрд╕реНрдЯ рд╕реВрдЯ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред

рд╡рд┐рдВрдбреЛрдЬ рдЕрдкрдбреЗрдЯ рд╣реЛрдиреЗ рддрдХ рдЗрд╕реЗ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рджреЗрдВред

рдХреНрдпрд╛ рдкреНрд░реА-рд░рд┐рд▓реАрдЬрд╝ рдкрд╣рд┐рдпреЛрдВ рдХреЛ рдирдП рдУрдкрдирдмреАрдПрд▓рдПрдПрд╕ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реИ рдЬреЛ рдЗрд╕ рдмрдЧ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рдереЗред

рд╡рд┐рдВрдбреЛрдЬ 3.9 рдкреВрд░реНрд╡-рд░рд┐рд▓реАрдЬрд╝ рдкрд╣рд┐рдпреЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЧрд╛рдпрдм рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдкрд░реАрдХреНрд╖рдг рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдереАрдВ (рдЕрдм рддрдп рд╣реЛ рдЧрдИ рд╣реИрдВ)ред рдЖрдЬ рдпрд╛ рдХрд▓ рдЖрдиреЗ рд╡рд╛рд▓реЗ 1.19.3 рдореЗрдВ рддрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

/MT рд╡рд┐рдХрд▓реНрдк рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рд╕реНрдЯреЗрдЯрд┐рдХ рд▓рд┐рдВрдХрд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред Microsoft SDK рдХреЗ 1909 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ libucrt.lib рдХреЗ рд╡рд┐рд░реБрджреНрдз рд╕реНрдЯреЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ 2004 рдФрд░ 20H2 рдореЗрдВ ucrtbase.dll рдмрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдкрд╣рд┐рдпреЛрдВ рдХреЛ рдмрдбрд╝рд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд╣рд▓реВ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ / рдПрдордЯреА рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рд╡реИрдз рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ NumPy рдПрдХрдорд╛рддреНрд░ рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬреЛ MT рдХреЗ рд╕рд╛рде рдмрдирд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдареАрдХред рдмреЗрд╢рдХ, рдпрд╣ рдорд╛рдорд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ NumPy MT рд╣реИ рддреЛ рдХреЛрдИ рднреА
рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдХреЛ рднреА рдПрдордЯреА рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреАред

рд╕реЛрдо, 2 рдирд╡рдВрдмрд░, 2020 рдХреЛ, 19:37 carlkl рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ / рдПрдордЯреА рд╕рдорд╕реНрдпрд╛ рд╣реИ
https://stevedower.id.au/blog/building-for-python-3-5-part-two рдЕрднреА рднреА рд╣реИ
рдорд╛рдиреНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб? рдореЗрд░реА рд╕реНрдерд┐рддрд┐ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ 2004 рдХреЗ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХреА рдЧрдИ рдорд╢реАрди рдкрд░ рд╣реВрдВ, рдФрд░ рдЗрд╕рдореЗрдВ рдбреЗрд╕реНрдХрдЯреЙрдк рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╣реИ рдЬреЛ рдкрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдЦреНрдпрд╛рддреНрдордХ / рд╕реНрдХреИрдкреА / рдкрд╛рдВрдбрд╛ рдЖрджрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рднреА рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ Microsoft рдХреЗ рдЕрдкрдбреЗрдЯ рдХреЗ рдХрд╛рд░рдг рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИрдВред

рдХрд┐рд╕реА рднреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреА, рдХреНрдпреЛрдВрдХрд┐ numpy рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП conda рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЙрд╕ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдореИрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдпрджрд┐ рдЖрдкрдХреЛ рдбреЙрдХрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рддреЛ рдЖрдк 1.19.3 рдкрд┐рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдореЗрд░реЗ рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рджред 1.19.3 рдореБрджреНрджреЗ рдкрд░ рдкрд╛рдЗрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЦрд░рд╛рдм BLAS рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХрдбрд╝реА, MS рдХреА рд╕рд╛рдЗрдЯ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╢реЛрд░ рд╡рд╛рд▓реЗ рдкреЛрд╕реНрдЯ рдЪрд▓рд╛ рд░рд╣реА рд╣реИред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдВрдд рддрдХ рдлреВрдВрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк Win64 рдкрд░ рдПрдХ 3 рдкрд╛рд░реНрдЯреА fmod рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ рдПрдХ рд░рд┐рд▓реАрдЬ рдХреЗ рдмрд╛рдж рдЪрд╛рд░ рдорд╣реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдиреБрдореНрдкреА рдмрдЧ рдХреЛ рдЗрд╕ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдореБрдХреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рддреЛ рдХреНрдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реЛрдЧреА, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рд╣рдордиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢ рдирд╣реАрдВ рджрд┐рдП рд╣реИрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ 1.19.3 рдкрд░ рдкрд┐рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдФрд░ рдкреИрдХреЗрдЬ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдЧрд╛ рдЬреЛ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рд╢рд╛рдпрдж рдбрд╛рдВрдЯ, рд╢рд╛рдпрдж рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛред

рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╡рд┐рдЪрд╛рд░: рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ ucrt рдореЗрдВ рдХреЛрдИ рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ FPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЕрдЪреНрдЫреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЕрдкрдирд╛ рд░рд╛рдЬреНрдп рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рдЕрдЧрд░ рд╡рд╣рд╛рдБ рдПрдХ рд╣реИ, рд╣рдо fmod рдХреЗ рдмрд╛рдж рдпрд╣ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рдХрд╛рдордХрд╛рдЬ рдкрд░ рдлрд╛рдпрджрд╛ рд╣реЛрдЧрд╛ @mattip рдиреЗ рд▓рд┐рдЦрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдлрд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдЬреЛ рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рд╡рд╣ рдореВрд▓реНрдпрд╡рд╛рди рдбреЗрд╡рд▓рдкрд░ рд╕рдордп рд▓реЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Microsoft рдкрд░ рджрдмрд╛рд╡ рдХрдо рдХрд░реЗрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХреЛрдИ рднреА рдХреЛрдб рдЬреЛ fmod рдФрд░ / рдпрд╛ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ NumPy рд╕реЗ рдХреЛрдИ рд╕рдВрдмрдВрдз рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдЬреЛ рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рд╡рд╣ рдореВрд▓реНрдпрд╡рд╛рди рдбреЗрд╡рд▓рдкрд░ рд╕рдордп рд▓реЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Microsoft рдкрд░ рджрдмрд╛рд╡ рдХрдо рдХрд░реЗрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХреЛрдИ рднреА рдХреЛрдб рдЬреЛ fmod рдФрд░ / рдпрд╛ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ NumPy рд╕реЗ рдХреЛрдИ рд╕рдВрдмрдВрдз рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИред

рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рдВрдбреЛрдЬ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реБрдЭрд╛рд╡ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЬреЛ рдирд╡реАрдирддрдо рдиреНрдпреВрдордкреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдкрд╛рдЗрдк рдкрд╣рд┐рдпрд╛ рдХреЗ рдмрдЬрд╛рдп рдПрдордХреЗрдПрд▓ рдХреЗ рд╕рд╛рде рдЬрд╣рд╛рдЬреЛрдВ рдХреЗ рд╡рд┐рддрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдореЗрдВ рдЗрд╕ рдзрд╛рдЧреЗ рдХрд╛ рд▓рд┐рдВрдХ рднреА рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдордПрд╕ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХрд┐рд╕реА рдФрд░ рдХреА рдЧрд▓рддреА рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд░реНрдж рд╣реЛрддрд╛ рд╣реИ, рд╢рд╛рдпрдж рд╣реА рдХрднреА рдХрд┐рд╕реА рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рдЗрдЪреНрдЫрд╛рд╢рдХреНрддрд┐ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИред

@bashtage рдХрд╛рдлреА рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рджрд░реНрдж рдкреИрджрд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВред рд╣рдо рд▓рд┐рдВрдХ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмрдЬрд╛рдп рдпрд╣рд╛рдВ рд▓реИрдВрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЬрдм рд╡реЗ 2004 рдореЗрдВ рдЪрд▓рддреЗ рд╣реИрдВ рддреЛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдПрдХ рдЧрдгрдирд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдЙрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдЧрдгрдирд╛ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред

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

NumPy рдХрд╛ рдЖрдпрд╛рдд рд╢рд╛рдирджрд╛рд░ рд░реВрдк рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдпрджрд┐ рдЬреНрдЮрд╛рдд рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рд╕реВрдЪреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рдереА:

(рдП) рдПрдордХреЗрдПрд▓-рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рддрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬреИрд╕реЗ рдХрд┐ рдХреЛрдВрдбрд╛ рдпрд╛ рдЙрддреНрд╕рд╛рд╣рд┐рдд рддреИрдирд╛рддреА рдкреНрд░рдмрдВрдзрдХ рдЬреЛ рдЗрд╕реЗ рд╕реЗ рдмрдЪрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЛрдб рдореЗрдВ
(b) NumPy 1.19.3 рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ рдЬреЛ OpenBLAS рдХреЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЬрд╣рд╛рдЬ рд╣реИ рдЬреЛ рдмрдЧ рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВред
(c) рд╕реНрд░реЛрдд рд╕реЗ рдирд┐рд░реНрдорд╛рдгред рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдореЗрдВ рдХрдо-рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ BLAS рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдРрд╕реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рддреГрддреАрдп-рдкрдХреНрд╖ рд╡рд┐рддрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╛ рддреЛ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдпрд╛ NumPy рдореЗрдВ рдмрдЧ рдлрд┐рдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ fmod рдмрдЧ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЧрд▓рдд рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЙрд╕ рдордВрдЪ рдкрд░ рднреЗрдЬрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдЙрдирдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИред

рд╣рдо рд▓рд┐рдВрдХ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмрдЬрд╛рдп рдпрд╣рд╛рдВ рд▓реИрдВрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЬрдм рд╡реЗ 2004 рдореЗрдВ рдЪрд▓рддреЗ рд╣реИрдВ рддреЛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдПрдХ рдЧрдгрдирд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдЙрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдЧрдгрдирд╛ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреЗрд╡рд▓ NumPy + OpenBLAS (рдкреВрд░реНрд╡ 0.3.12) рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ NumPy + Windows (2004 / 20H2 (рдЕрдм 2 рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИрдВ) рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)ред

рдПрдордХреЗрдПрд▓-рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рддрд░рдг

рд╕рд╛рде рд╣реА рдПрдордХреЗрдПрд▓ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдереАред

NumPy 1.19.3 рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВ

рд▓реЗрдХрд┐рди рдпрд╣ fmod рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЙрддреНрдкрдиреНрди рдЕрдиреНрдп рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рд╕рд╣реА рд╣реЛрдВред

рдлреЛрд▓реНрдХреНрд╕ 2004 рдореЗрдВ рдЕрдЬрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╢рд╛рдпрдж рдЗрд╕рдХреЗ рдмрдЬрд╛рдп WSL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ? рдореИрдВ рднреА рдПрдХ рдкреБрд░рд╛рдиреЗ ucrt рдХреЗ рд╕рд╛рде рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдЕрдЧрд░ рдпрд╣ рд╕рдВрднрд╡ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдХреНрдпрд╛ рдкрд╣рд▓реЗ рдХреЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ?

рд╕рд╛рде рд╣реА рдПрдордХреЗрдПрд▓ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдереАред

NumPy рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рд╣реИ рдЬреЛ MKL рдкрд░ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдБ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдЬрдм рд╡рд╣рд╛рдБ рдХреЛрдИ рд╡рд┐рдлрд▓рддрд╛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред Fmod рдмрдЧ рдПрдордХреЗрдПрд▓ рдХреЗ BLAS рдореЗрдВ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ (рд╕рдВрднрд╡рддрдГ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ FPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред

рд▓реЗрдХрд┐рди рдпрд╣ fmod рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЙрддреНрдкрдиреНрди рдЕрдиреНрдп рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рд╕рд╣реА рд╣реЛрдВред

рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рднреА рдареАрдХ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдпрд╛ рдХрдИ рдЕрдиреНрдп рдмрдЧред рдпрд╣рд╛рдБ рдореБрджреНрджрд╛ рдмрд╣реБрдд рд╡рд┐рд╢реЗрд╖ рд╣реИред

  1. fmod рдареАрдХ рд╣реИ рдЬреЛ рд╕рд╣реА рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ
  2. рд╕рд┐рд╕реНрдЯрдо рдХрдВрдкрд╛рдЗрд▓рд░ x87 рдХреЛрдб рдХрд╛ рдЙрддреНрдкрд╛рджрди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдбрд╛рдВрддрд░рдХ рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпреЗ рджреЛрдиреЛрдВ рдореБрдЭреЗ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рд▓рдЧрднрдЧ рд╕рднреА рдХреЛрдб рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдмрд╣реБрдд рдЪреБрдиреМрддреАрдкреВрд░реНрдг рд╣реИред рдХреЗрд╡рд▓ OpenBLAS, FFT рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдЬреИрд╕реЗ рд╣рд╛рде рд╕реЗ рд▓рд┐рдЦрд┐рдд рдЧреБрдард▓реА, рдпрд╛ MKL рдЬреИрд╕реЗ рдЙрдЪреНрдЪрддрдо рдкреНрд░рджрд░реНрд╢рди рдХреЛрдб # 2 рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рддрдп рдХрд░рдирд╛ рд╡рд╛рдЬрд┐рдм рд╣реИ рдХрд┐ рдЬрдм рд╕реЗ рдУрдкрдирдмреАрдПрдПрд╕рдП 0.3.12 рдиреЗ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рддрдм рдиреВрдкреА рд░рд┐рд▓реАрдЬ рд╣реЛрдЧреА рдФрд░ рдпрд╣ рдореБрджреНрджрд╛ рдХрднреА рднреА рдпреВрдЬрд░реНрд╕ рдХреЗ рд╕рд╛рдордиреЗ рдирд╣реАрдВ рдЖрдПрдЧрд╛ред

рдлреЛрд▓реНрдХреНрд╕ 2004 рдореЗрдВ рдЕрдЬрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╢рд╛рдпрдж рдЗрд╕рдХреЗ рдмрдЬрд╛рдп WSL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ? рдореИрдВ рднреА рдПрдХ рдкреБрд░рд╛рдиреЗ ucrt рдХреЗ рд╕рд╛рде рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдЕрдЧрд░ рдпрд╣ рд╕рдВрднрд╡ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдХреНрдпрд╛ рдкрд╣рд▓реЗ рдХреЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ?

рдореБрдЭреЗ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рдЫрд╛рддреНрд░ (рдЬреЛ рдХреЛрдВрдбрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП), рдпрд╛ рдХреЛрдИ рднреА рдЬреЛ 2004 рдпрд╛ 20 рдПрдЪ 2 рдХреЗ рд╕рд╛рде рдПрдХ рд▓реИрдкрдЯреЙрдк рдЦрд░реАрджрд╛ рдерд╛, рдЬреЛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рди рдХреЗрд╡рд▓ рдХреЙрдиреНрдбрд╛рд╕ рдХреЛ рдЦрд╕рд░рд╛ рдкреИрдХ MLK рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА ucrtbase.dll рдЕрдкрдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╢рд┐рдк рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдкреБрд░рд╛рдиреЗ рд╡рд░реНрдЬрди рдХреЗ рд▓рд┐рдП рдЕрдкреАрдпрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (10.0.17134.12)

рдпрд╣рд╛рдБ @Bashtage рдХреЗ рд╕рд╛рде рдХрд╛рдлреА рд╣рдж рддрдХ рд╕рд╣рдордд

@jenshnielsen : рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ MLK рдХреЗ рдЦрд┐рд▓рд╛рдл рди рдХреЗрд╡рд▓ рдХреЛрдВрдбрд╛ рдЦрд╕рд░рд╛ рдкреИрдХ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ [...]

Conda-forge рджреНрд╡рд╛рд░рд╛ рдкреИрдХ рдХрд┐рдП рдЧрдП рдмрд┐рд▓реНрдб, blas / lapack рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (рдУрдкрдирдмреНрд▓рд╕ / mkl / blis / netlib рдХреЗ рдмрд╛рд╣рд░) рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдпрд╣ _have_ рдХреЛ MKL рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИред

рдлреЛрд▓реНрдХреНрд╕ 2004 рдореЗрдВ рдЕрдЬрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╢рд╛рдпрдж рдЗрд╕рдХреЗ рдмрдЬрд╛рдп WSL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ?

рдпрд╣ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореЛрдб рдирд╣реАрдВ рд╣реИред

рдореИрдВ рднреА рдПрдХ рдкреБрд░рд╛рдиреЗ ucrt рдХреЗ рд╕рд╛рде рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдЕрдЧрд░ рдпрд╣ рд╕рдВрднрд╡ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣рдорд╛рд░реА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдирд╣реАрдВ рд╣реИрдВред

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

рдпрджрд┐ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдХреЛ рдПрдХ рддрд╛рдЬрд╛ рд╕реНрдерд╛рдкрд┐рдд рдпрд╛ рд╕рд╛рдл рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдРрд╕рд╛ рдХрд░рдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣рд╛рдБ @Bashtage рдХреЗ рд╕рд╛рде рдХрд╛рдлреА рд╣рдж рддрдХ рд╕рд╣рдордд

рдореИрдВ рд╕рд╣рдордд рд╣реВрдБред рдпрджрд┐ рд╣рдо рдЗрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдо рдмрд╣реБрдд рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЦреЛ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рднреА рдПрдХ рдкреБрд░рд╛рдиреЗ ucrt рдХреЗ рд╕рд╛рде рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдЕрдЧрд░ рдпрд╣ рд╕рдВрднрд╡ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

@charris , рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ 10 рдкрд░ рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдЖрдк рдЕрдЬрдЧрд░ рдпрд╛ рд╕реБрдиреНрди рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ ucrt рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд╡рд┐рдВрдбреЛрдЬ 10 рдкрд░ рдХрднреА рд▓реЛрдб

@carlkl
Conda рдкреИрдХ рдЕрдЬрдЧрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ interjects DLL рдЦреЛрдЬ рдкрде рд╕рдВрдХрд▓реНрдк рдореЗрдВ рд╣реА (- рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд - рдЬреЛ рд╕рдВрднрд╡рддрдГ рдХрд╛рд░рдг рддреБрдо рдХреНрдпреЛрдВ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ Windows 10 рдкрд░ рдХрд╛рдо рдХрднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ), рдФрд░ рдЗрд╕ AFAICT рднреА рдХрд╛рд░рдг рд╣реИ рдХрд┐ conda _does_ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИ рдПрдХ ucrtbase.dll , рдЬреИрд╕рд╛ рдХрд┐ @jenshnielsen рд▓рд┐рдЦрддреЗ рд╣реИрдВред

@ h-vetinari, рдпреВрдирд┐рд╡рд░реНрд╕рд▓ CRT рддреИрдирд╛рддреА рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ:

_ рд╕реНрдерд╛рдиреАрдп рддреИрдирд╛рддреА рдкрд░ рджреЛ рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВ рдЬрд┐рдирд╕реЗ рдЕрд╡рдЧрдд рд╣реЛрдирд╛:
рд╡рд┐рдВрдбреЛрдЬ 10 рдкрд░, рд╕рд┐рд╕реНрдЯрдо рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдпреВрдирд┐рд╡рд░реНрд╕рд▓ CRT рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдореЗрд╢рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдпреВрдирд┐рд╡рд░реНрд╕рд▓ CRT рдХреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди-рд▓реЛрдХрд▓ рдХреЙрдкреА рд╢рд╛рдорд┐рд▓ рд╣реЛред рдпрд╣ рддрдм рднреА рд╕рдЪ рд╣реИ рдЬрдм рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐ рдирдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпреВрдирд┐рд╡рд░реНрд╕рд▓ рд╕реАрдЖрд░рдЯреА рд╡рд┐рдВрдбреЛрдЬ 10._ рдкрд░ рдПрдХ рдХреЛрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдШрдЯрдХ рд╣реИ

BTW: рдореИрдВ рдЗрд╕реЗ рдЦреБрдж рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред рд╡рд┐рдВрдбреЛрдЬ 10 рдХреЗ рд╕рд╛рде рдЙрдкрд▓рдмреНрдз рдпреВрд╕реАрдЖрд░рдЯреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рдпреВрд╕реАрдЖрд░рдЯреА рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рддрдп рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ

рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк PR gh-17547 рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВ?

@Carlkl рдХреА рдмрд╛рдд рдХрд╛ рдкреНрд░рдорд╛рдг:

image

рдПрдордПрд╕ рдХреЗ рдХрд╛рд░рдг рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЗрд╕ рдмрдЧ рдХреЛ рдПрдХ рд╣рд╛рдЗрдЬреЗрдирдмрдЧ рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдвреВрдВрдврдирд╛ рдорд╣рдВрдЧрд╛ рдФрд░ рдХрдард┐рди рдерд╛: рд╡рд┐рдВрдбреЛрдЬ 2004 рдпреВрд╕реАрдЖрд░рдЯреА рдПрдлрдПрдордбреА рдХреБрдЫ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдПрдлрдкреАрдпреВ рд░рдЬрд┐рд╕реНрдЯрд░реНрдб рдмреЙрдЯрд╕реНрдЯреЗрдб рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдПрдлрдкреАрдпреВ рдХрд╛ рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдмрд╣реБрдд рдмрд╛рдж рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЧрдгрдирд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддрд╛ рд╣реИред рдЧрдгрдирд╛ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЖрдорддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рдореЗрдВ рдкреЙрдк рдЕрдк рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ рдпрджрд┐ рдХрдареЛрд░рддрд╛ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЕрдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░рд╣рддреА рд╣реИрдВред рдпрд╣ рд╢рд╛рдпрдж рд╣реА рдмрджрддрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк PR gh-17547 рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВ?

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВрдиреЗ рдЧрд▓рдд рдмрд╛рдд рд▓рд┐рдЦреА рд╣реИред

рдПрдХрдорд╛рддреНрд░ рдмрджрд▓рд╛рд╡ рдЬреЛ рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗ рд░рд╣рд╛ рд╣реВрдВ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ NumPy рдЖрдпрд╛рдд рдкрд░ рдЙрдард╛рдП рдЧрдП рдЕрдкрд╡рд╛рдж рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ 2004 / H2 рдкрд░ рдПрдХ рдРрд╕рд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреА рдиреМрдХрд░реА / рд╕реНрдХреВрд▓ / рд╢реМрдХ рдХреЗ рд╕рд╛рде рдорд┐рд▓реЗрдЧрд╛ред

  1. WSL
  2. conda / enthought
  3. 1.19.3
  4. рд╕реНрд░реЛрдд рд╕реЗ рдмрдирд╛рдПрдБ

[рдпрд╣ рдЖрджреЗрд╢ рд╕рдорд╛рдзрд╛рди рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдореЗрд░реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ]

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рдПрдХ рдРрд╕реЗ рдореБрджреНрджреЗ рд╕реЗ рднреА рдЬреБрдбрд╝рд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдереЛрдбрд╝рд╛ рд╕рд╛рдл рд╣реИ рдЬреЛ рдПрдХ рдЧрд╣рди рд╡реНрдпрд╛рдЦреНрдпрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рджреВрд╕рд░рд╛ рд▓рд┐рдВрдХ рднреА рдПрдХ github рдореБрджреНрджреЗ рдХреЗ рдмрдЬрд╛рдп рдбреЙрдХреНрд╕ рдореЗрдВ рдХреБрдЫ рд░рд┐рд▓реАрдЬрд╝ рдиреЛрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

Conda-forge рджреНрд╡рд╛рд░рд╛ рдкреИрдХ рдХрд┐рдП рдЧрдП рдмрд┐рд▓реНрдб, blas / lapack рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (рдУрдкрдирдмреНрд▓рд╕ / mkl / blis / netlib рдХреЗ рдмрд╛рд╣рд░) рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдпрд╣ _have_ рдХреЛ MKL рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИред

@ h-vetinari Do conda-forge + OpenBLAS 2004 / H2 рдкрд░ рдкрд╛рд╕ рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рддрд╛ рд╣реИ?

рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА рдЬрд╛рдБрдЪ рдХреА рдФрд░ рдХреЛрдбрд╛-рдлреЛрд░реНрдЬ рдХреЗ рдЬрд╣рд╛рдЬ OpenBlas 0.3.12ред рдХреНрдпрд╛ рдпрд╣ рдХреНрд░реИрд╢ рдХрдВрдЯреЗрдирд░ рд╣реИ?

рдУрдкрдирдмреАрдПрдПрд╕-0.3.12 рдореЗрдВ EMMS рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╕рд╛рде FPU рд░рд╛рдЬреНрдп рдХреА рдЪрд┐рдХрд┐рддреНрд╕рд╛ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реБрдиреНрди рдФрд░ рдЪреБрд╕реНрдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ @charris рдиреЗ fmod(0,x) рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдмрд╛рдд рдХрд╣реА рд╣реИ CPython рдФрд░ рдлрд┐рд░ FPU рдирд┐рд░реНрджреЗрд╢ рдмрд╛рдж рдореЗрдВ (OpenBLAS рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдкреИрдХреЗрдЬ рдореЗрдВ) рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ рдЕрдиреНрдпрддреНрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджреА рдЬрд╛рддреА рд╣реИред

рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рджрд╛рдВрд╡ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдордПрд╕ рдХреЛ рдордЬрдмреВрд░ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдердкрдердкрд╛рдПрдВред рд╢рд╛рдпрдж рд╕реНрдЯреАрд╡ рдбрд╛рд╡рд░ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдпрд╣ рдПрдЧреНрдирд░ рдлреЙрдЧ рдпрд╛ рд╢рд╛рдпрдж рдмреНрд░реВрд╕ рдбреЙрд╕рди рдХреЗ рд▓рд┐рдП рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╣рд╛рдиреА рднреА рд╣реЛ рд╕рдХрддреА рд╣реИ: рджреЗрдЦрд┐рдП рдЙрдирдХреЗ рдмреНрд▓реЙрдЧ рдореЗрдВ рдЗрд╕ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╣рд╛рдиреА:
рд╕рдм рдХреБрдЫ рдкреБрд░рд╛рдирд╛ рд╣реИ рдлрд┐рд░ рд╕реЗ, рдФрд░ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдмрдЧ

рд╢рд╛рдпрдж OpenBlas 0.3.12 рдореЗрдВ рдмрдЧред рдирд┐рдЬреА рдмрд╛рдЗрдЯреНрд╕ рдХреЙрд▓рдо рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ:

image

рдпрд╣ рд╕рдВрднрд╡рддрдГ 24 BLAS рдереНрд░реЗрдб рдХреЗ рд▓рд┐рдП рдбрд┐рдлреЙрд▓реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ 24 рд▓реЙрдЬрд┐рдХрд▓ рд╕реАрдкреАрдпреВ рд╣реИрдВред

рдпрд╣ OpenBLAS 0.3.12 рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдВрдкрд╛-рдлреЛрд░реНрдЬ рдХреА рд╕рдВрдЦреНрдпрд╛ 1.19.2 рд╣реИред

рдПрдХ рдирд╛рдЯрдХреАрдп рдХрдореА рдХреЗ рд▓рд┐рдП $env:OPENBLAS_NUM_THREADS=1 рд╕реНрдерд╛рдкрдирд╛ рдХрд░рддрд╛ рд╣реИ

image

рдФрд░ $env:OPENBLAS_NUM_THREADS=4 рдзрд╛рдЧреЗ рдХреЗ рд╕рд╛рде:

image

@ рдиреЛрдЯ : рдХреНрдпрд╛ рдЖрдк OpenBLAS xianyi / OpenBLAS # 2970 рдореЗрдВ OpenBLAS 0.3.12 рдкрд░ рдЪрд░реНрдЪрд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ?

@ рдореИрдордЯрд┐рдк рдореИрдВ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдВрдбрд╛ + рдУрдкрдирдмреАрдПрд▓рдПрдПрд╕ рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╡рд┐рдХрд▓реНрдк рдерд╛ред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдХреБрдЫ рднреА рд╣реИ рдХрд┐ 1.19.3 рд╣рд▓ рдЗрди рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рджреЗрдЦрд╛ рд╣реИ рд╣рд▓ рдХрд░рддреА рд╣реИред

@ рдмреЗрд╕рд╢реВрдЯ : @ рдУрдВрдХрд╛рд░рд▓реЛрдХ рдмрд┐рдВрджреБ рдХрд╛ рдкреНрд░рдорд╛рдг:

рдЪреВрдВрдХрд┐ рдХреЛрдВрдбрд╛-рдкреИрдХ рдХрд┐рдП рдЧрдП рдЕрдЬрдЧрд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдорд╛рдирдХ рдбреАрдПрд▓рдПрд▓ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬрд╝ рдЯреВрд▓ рдХрд┐рддрдирд╛ рдкреНрд░рдорд╛рдг рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрд░рд╛рдиреЗ libcrypto.dll C:\Windows\System32 рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП https://github.com/conda-forge/staged-recipes/pull/11452 рджреЗрдЦреЗрдВред рд▓рдВрдмреА рдХрд╣рд╛рдиреА рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдкреБрд░рд╛рдиреА рдкреНрд░рдгрд╛рд▓реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ cryptography рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓рддрд╛ рджреНрд╡рд╛рд░рд╛ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдлрд┐рд░ - CONDA_DLL_SEARCH_MODIFICATION_ENABLE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП - рдХреЛрдВрдбрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдУрдкрдирд╕реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

@bashtage : @ h-vetinari Do conda-forge + OpenBLAS 2004 / H2 рдкрд░ рдкрд╛рд╕ рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рддрд╛ рд╣реИ?

CI рдЬреЛ рд╕рдВрдХреБрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣рд╛ рд╣реИ рд╡рд╣ рд╕рдВрднрд╡рддрдГ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдмрдирд╛рдиреЗ рдореЗрдВ рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рд╕рдордп рд▓рдЧрд╛ред рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ 2004 рдорд╢реАрди рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдпрд╣ рд╣реИ - рдмрд╣реБрдд рд╕рдХрд╛рд░рд╛рддреНрдордХ - рдкрд░рд┐рдгрд╛рдо **:

= 10487 passed, 492 skipped, 19 xfailed, 1 xpassed, 227 warnings in 529.08s (0:08:49) =

@рдмреИрд╢реЗрдЯ : рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА рдЪреЗрдХ рдХрд┐рдпрд╛ рдФрд░ рдХреЛрдВрдбрд╛ рдлреЛрд░реНрдЬ рдХреЗ рдЬрд╣рд╛рдЬ рдУрдкреЗрдирдмрд╛рд▓рд╛рд╕ 0.3.12ред рдХреНрдпрд╛ рдпрд╣ рдХреНрд░реИрд╢ рдХрдВрдЯреЗрдирд░ рд╣реИ?

рдХреЛрдВрдбрд╛-рдлреЛрд░реНрдЬ рдХрд┐рд╕реА рднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдУрдкрдирдмреНрд▓рд╛рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЬрд╣рд╛рдЬ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдмреНрд▓рд╛рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ "рд╣реЙрдЯрд╕реНрд╡реИрдкреНрдб" рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдУрдкрдирдмреНрд▓рд╛рд╕, рдПрдордХреЗрдПрд▓, рдмреНрд▓рд┐рд╕ рдХреЗ рдмреАрдЪ), рдЗрд╕рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг рдПрдХ рдмрдбрд╝рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдЖрдо рддреМрд░ рдкрд░ рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдирд╡реАрдирддрдо рдкреИрдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ рджреБрд░реНрдШрдЯрдирд╛ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдкреБрди: рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ рдпрд╛ рдирд╣реАрдВред

@bashtage :: @mattip рдореИрдВ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ conda + OpenBLAS рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╡рд┐рдХрд▓реНрдк рдерд╛ред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдХреБрдЫ рднреА рд╣реИ рдХрд┐ 1.19.3 рд╣рд▓ рдЗрди рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рджреЗрдЦрд╛ рд╣реИ рд╣рд▓ рдХрд░рддреА рд╣реИред

рд╕реНрдореГрддрд┐ рд╡реГрджреНрдзрд┐ рдУрдкрдирдмреНрд▓реИрд╕ 0.3.12 рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рдХрд╛рд░рдг рд╣реБрдИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдЧреЗ рдЬрд┐рдпрд╛рдиреНрдпреА / рдУрдкрдирдмреНрд▓рд╕ # 2970 рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереАред рдЕрдм рддрдХ, рдХреЛрдВрдбрд╛-рдлреЛрд░реНрдЬ рдореБрдЭреЗ рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╡рд┐рдХрд▓реНрдк рд▓рдЧрддрд╛ рд╣реИ - рдХрдо рд╕реЗ рдХрдо рдпрд╣ рд╕реАрдзреЗ рддреНрд░реБрдЯрд┐ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

** рдореИрдВрдиреЗ https://github.com/conda-forge/numpy-feedstock рдХреЗ рд╡рд░реНрддрдорд╛рди рдорд╛рд╕реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рдЕрднреА рднреА 1.19.2 рдкрд░ рд╣реИ, рдЬреЛ рдУрдкрдирдмреНрд▓рд╕ 0.3.12 рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рд╣реИред рдЕрдЧрд░ рд▓реЛрдЧреЛрдВ рдХреА рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рддреЛ рдореИрдВ https://github.com/conda-forge/numpy-feedstock/pull/210 + openblas 0.3.12 рднреА рдЖрдЬрд╝рдорд╛ рд╕рдХрддрд╛ рд╣реВрдВред

рдЕрдЪреНрдЫреА рдЦрдмрд░ рдореЗрдВ, рдПрдордПрд╕ рд╡реАрдПрд╕ рдлреЛрд░рдо рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рдФрд░ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ рдЬрдирд╡рд░реА 2021 рдХреЗ рдЕрдВрдд рддрдХ рдПрдХ рдлрд┐рдХреНрд╕ рдЖрдЙрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдЕрдкрдбреЗрдЯ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХрдорд╛рддреНрд░ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдореВрд▓реНрдп рд╣реИ рдЬреЛ рдЬрдм рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рд╕рдорд╛рд░реЛрд╣ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИред

рдЪреВрдВрдХрд┐ рдХреЛрдВрдбрд╛-рдкреИрдХ рдХрд┐рдП рдЧрдП рдЕрдЬрдЧрд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдорд╛рдирдХ рдбреАрдПрд▓рдПрд▓ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬрд╝ рдЯреВрд▓ рдХрд┐рддрдирд╛ рдкреНрд░рдорд╛рдг рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрд░рд╛рдиреЗ libcrypto.dll C:\Windows\System32 рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП conda-forge / staged-recipes # 11452 рджреЗрдЦреЗрдВред рд▓рдВрдмреА рдХрд╣рд╛рдиреА рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдкреБрд░рд╛рдиреА рдкреНрд░рдгрд╛рд▓реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ cryptography рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓рддрд╛ рджреНрд╡рд╛рд░рд╛ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдлрд┐рд░ - CONDA_DLL_SEARCH_MODIFICATION_ENABLE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП - рдХреЛрдВрдбрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдУрдкрдирд╕реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

conda create -n cf -c conda-forge python numpy pytest hypothesis blas=*=openblas openblas=0.3.9 -y
conda activate cf
python -c "import numpy as np;np.test('full')"

рдЖрдЙрдЯрдкреБрдЯ

C:\Anaconda\envs\cf\lib\site-packages\numpy\linalg\linalg.py:94: LinAlgError
---------------------------------------------------------------------- Captured stdout call ----------------------------------------------------------------------
 ** On entry to DGEBAL parameter number  3 had an illegal value
 ** On entry to DGEHRD parameter number  2 had an illegal value
 ** On entry to DORGHR DORGQR parameter number  2 had an illegal value
 ** On entry to DHSEQR parameter number  4 had an illegal value

рдЗрд╕рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдкреБрд░рд╛рдиреЗ OpenBLAS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╡рд░реНрддрдорд╛рди ucrt DLL рд╕реЗ рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдХреЛрдВрдбрд╛ рдлреЛрд░реНрдЬ рд╕реЗ рдХреЗрд╡рд▓ рдУрдкрдирдмреНрд▓рд╛рд╕ = 0.3.12 рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдиреНрдпреВрдордкреА 1.19.3 рдореЗрдВ рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдПрдХ рдирд┐рд░рд╕реНрддреНрд░ OpenBLAS-0.3.12 рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдПрдХ рдирдИ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд░рд┐рд▓реАрдЬ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХреНрдпрд╛ рдмреЛрд▓рддрд╛ рд╣реИ? рд╕реБрдкреАрд░рд┐рдпрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ OpenBLAS рдХреЗ рд╕рдВрдХрд▓рди рдХреЗ рд╕рдордп рдмреНрд░реЗрдбрд░реНрд╕ рдХреЛ рдХрдо рдХрд░рдирд╛ рдФрд░ рд╕рдВрднрд╡рддрдГ рдереНрд░реЗрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рд╣реЛ рдЬрд╛рдирд╛ред рдЗрд╕рд╕реЗ OpenBLAS рдХреА рдореЗрдореЛрд░реА рдХреА рдЦрдкрдд рдХрдо рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рди рдХреЗрд╡рд▓ рдбреЙрдХрдЯрд░ рдЯреЗрд╕реНрдЯрдХреЗрд╕ рдореЗрдВ рдмрд▓реНрдХрд┐ рдХрдо рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реБрд╕рдЬреНрдЬрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдорджрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП
рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рдмрдХреНрд╕реЗред

рдпрд╣рд╛рдБ рдкрд░ https://tinyurl.com/y3dm3h86 рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдкрд╛рдпрдерди рдХреЗ рдЕрдВрджрд░ рд╕реЗред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдЬреЛ рдЕрдм (1.19.3) рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ 1.19.3 рд▓рд┐рдирдХреНрд╕ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ 1.19.4 рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдЬрдмрдХрд┐ рдЗрд╕рдореЗрдВ рдмрдЧ рд╣реИ)ред

рдХреНрдпрд╛ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдкреЗрдкреА 1.19.3 рдФрд░ рдЕрдиреНрдп рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП 1.19.4 рдкрд░ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛? рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдмрд╕ https://files.pythonhosteded.org/packages/33/26/c448c5203823237d744b7e71b81c2b6dcbcd4bff972897ce937b437ee836b2b/numpy-1.19.4-cp36-cp36-m_m6/m_m/m/6/6/6/6/6/6/6/6/6/6/5446&vs&hl=hi&vs=&hl=hi&vs=&hl=hi&hl=hi/m_m6&hl=hi/m/6/6/ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЗрд╕реЗ рд╣рдЯрд╛рдПрдВред рдЕрднреА рдХреЗ рд▓рд┐рдП?

@luciansmith рдЬрдм рддрдХ рд╕реНрд░реЛрдд 1.19.4 рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ, рддрдм рддрдХ рдкрд╛рдЗрдк рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛ рдФрд░ рдЬрдм рддрдХ рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдЭрдВрдбреЗ рдкрд╛рд╕ рди рд╣реЛрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╡рд▓ рдЕрддрд┐рд░рд┐рдХреНрдд рдЭрдВрдбреЗ рдкрд╛рд╕ рдХрд░реЗрдВрдЧреЗ рдпрджрд┐ рдЙрдиреНрд╣реЗрдВ рд╕рдорд╕реНрдпрд╛ рдкрддрд╛ рдереА, рд▓реЗрдХрд┐рди рддрдм рд╡реЗ рдХреЗрд╡рд▓ 1.19.3 рдкрд┐рди рдХрд░ рд╕рдХрддреЗ рдереЗред

рдореЗрд░реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ 1.19.5 рд╣реЛрдЧреА рдЬреЛ рд▓рд┐рдирдХреНрд╕ рдкрд░ OpenBLAS 0.3.9 рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ 0.3.12 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдпрд╛ рдирд╣реАрдВред

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