我正在尝试优化我的代码,利用多核处理器来复制任何操作大型密集数组。
用于复制:我有一个大的密集数组(大约 6000x100000),我需要从中拉出 15x100000 个子数组来进行多次计算。管道由许多由多核 blas 处理的线性代数函数组成。与线性代数相比,提取数据的时间是否真的很重要是一个悬而未决的问题,但我想谨慎起见并确保数据复制得到优化。
对于操作:我有许多不同的函数可以通过元素或行来操作数组。如果这些中的每一个都是多核的,那将是最好的。
我的问题是:最好使用正确的框架(OpenML、OpenCL)并让所有的魔法发生在编译器上,还是有好的函数/库可以更快地做到这一点?