MKL 的串行和并行版本在两个不同的库中实现。库的功能具有相同的名称。所以你不能直接加载两个库并分别调用每个函数,而不会在编译时发生冲突。
我想开发一个函数的包装器(例如 OpenGL Extension Wrangler Library (GLEW)),它将为每个相同的函数提供相应的扩展,并且扩展函数将从适当的库中加载并行或顺序函数。这是一个好主意吗?你能建议点别的吗?
非常感谢。
我建议您始终使用 MKL 的并行版本,并控制 MKL 函数使用的#thread。
MKL 提供了void mkl_set_num_threads( int nt )来改变 #thread MKL 函数可以随时使用。
设置为 1 时,等于串行版本。