В conda
,mkl_set_num_threads() ограничено физическими ядрами?
В одном компьютере у меня процессора i7 4790 который 4 ядра 8 потоков. Когда я использую mkl.set_num_threads(n)
, где n > 4
, он установлен на 4, когда я проверю его позже от mkl.get_max_threads()
. Это имеет смысл, поскольку mkl не использует Hyper Thread.
В другом компьютере у меня E5 2643 который также 4 ядра 8 потоков. Однако на этот раз можно установить количество потоков в 8. Почему?
В обоих машинах, если я mkl.set_num_threads(2)
, mkl.get_max_threads()
возвращает 2, как ожидалось.
Вы подразумеваете, что у меня включена динамическая регулировка на i7, но не на E5? Но почему я могу установить, чтобы потоки были меньше числа физических ядер в этом случае? – colinfang
@colinfang Да, я имею в виду это. Вы всегда можете установить, чтобы потоки были меньше числа физических ядер, что делает его больше, чем число физических ядер, похоже, не работает. – CrakC