我有一个矩阵和一个长度为BATCH_SIZE的三元组列表:
float matrix[3000][3000]
(float vector[3000], uint32_t index, float alpha)
对于每个三元组,我使用:
matrix[index] += vector * alpha.
我很多批次都这样做。
我想知道在CUDA中加速代码的最佳方法是什么。我也愿意使用Python库。
我有一个矩阵和一个长度为BATCH_SIZE的三元组列表:float matrix [3000] [3000](float向量[3000],uint32_t索引,float alpha)对于每个三元组,我使用以下内容执行一个saxpy:matrix [。 ..
这里是使用thrust的可能方法。它大致遵循注释中概述的顺序。基本思想是将所有内容展平,并减少将添加到同一矢量元素中的元素放在一起: