Ophion引导了我正确的方法。尽管有文档,但必须
mkl_set_num_thread通过引用来传递参数。
import numpyimport ctypesmkl_rt = ctypes.CDLL('libmkl_rt.so')mkl_get_max_threads = mkl_rt.mkl_get_max_threadsdef mkl_set_num_threads(cores): mkl_rt.mkl_set_num_threads(ctypes.byref(ctypes.c_int(cores)))mkl_set_num_threads(4)print mkl_get_max_threads() # says 4
他们按预期工作。
编辑:根据Rufflewind,C函数的名称以大写形式编写,期望按值表示参数:
import ctypesmkl_rt = ctypes.CDLL('libmkl_rt.so')mkl_set_num_threads = mkl_rt.MKL_Set_Num_Threadsmkl_get_max_threads = mkl_rt.MKL_Get_Max_Threads
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)