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