Возможно, вам нужно быть осторожным с предположением, что ваш код на самом деле использует многопоточные вызовы BLAS. Относительно немногие операторы-пустышки фактически используют базовый BLAS, и относительно немного вызовов BLAS на самом деле являются многопоточными. numpy.dot
использует либо BLAS dot
, gemv
, либо gemm
, в зависимости от операции, но из них только gemm
обычно является многопоточным, поскольку редко наблюдается какое-либо выигрыш в производительности для O (N) и O (N ^ 2) BLAS призывает при этом. Если вы ограничиваете себя операциями BLAS уровня 1 и уровня 2, я сомневаюсь, что вы на самом деле используете любые многопоточные вызовы BLAS, даже если вы используете непостоянную реализацию, построенную с многопоточным BLAS, таким как Atlas или MKL.