gpt4 book ai didi

multithreading - 请问 `mkl_set_num_threads`是CPU Threads数的上限吗?

转载 作者:行者123 更新时间:2023-12-03 12:44:09 26 4
gpt4 key购买 nike

在 OpenBLAS 中,如果您调用 openblas_set_num_threads要求线程数高于您拥有的 CPU 线程数,
那么它将设置使用的实际线程数是您的 CPU 线程数。

这可以在 source code 中看到

我想知道 MKL 是否有相同的行为?
docs不要明确提及。
但他们确实说:

The number specified is a hint, and Intel® MKL may actually use a smaller number.

最佳答案

它似乎限制了核心数量(而不是线程数量)。以下代码在 6 核 Intel Core i7 上运行:

julia> using MKL_jll

julia> get_max_threads() = ccall((:mkl_get_max_threads, libmkl_rt), Int32, ());

julia> set_max_threads(n) = ccall((:mkl_set_num_threads, libmkl_rt), Cvoid, (Ptr{Int32},), Ref(Int32(n)));

julia> get_max_threads()
6

julia> set_max_threads(4)

julia> get_max_threads()
4

julia> set_max_threads(8)

julia> get_max_threads() # maxed out at 6
6

julia> set_max_threads(24)

julia> get_max_threads() # maxed out at 6
6

julia> set_max_threads(1)

julia> get_max_threads()
1

关于multithreading - 请问 `mkl_set_num_threads`是CPU Threads数的上限吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60237626/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com