Dans conda
,mkl_set_num_threads() est plafonné par les cœurs physiques?
dans un PC I ont CPU i7 4790 qui est 4 noyaux 8 fils. Chaque fois que j'utilise mkl.set_num_threads(n)
où le n > 4
, il est mis à 4 lorsque je le vérifie plus tard à partir de mkl.get_max_threads()
. Cela a du sens car mkl ne bénéficie pas de Hyper Thread.
Dans un autre pc I ont E5 2643 qui est également 4 noyaux 8 fils. Cependant, cette fois, il est possible de définir le nombre de threads à 8. Pourquoi est-ce?
Dans les deux machines, si I mkl.set_num_threads(2)
, mkl.get_max_threads()
renvoie 2 comme prévu.
Impliquez-vous que j'ai un ajustement dynamique activé sur i7 mais pas sur E5? Mais pourquoi puis-je définir des threads inférieurs au nombre de cœurs physiques dans ce cas? – colinfang
@colinfang Oui, je le pense. Vous pouvez toujours définir des threads inférieurs au nombre de cœurs physiques, en définissant un nombre supérieur à celui du nombre de cœurs physiques ne semble pas fonctionner. – CrakC