我有两个以 CSR 格式存储的稀疏通用矩阵需要相乘。有没有机会使用 AVX2 获得性能?一般来说,矩阵很大(数亿个非零,大小约为 300 万 x 300 万)。每条矩阵行的非零数应该足够了,但我不确定不规则的数据访问是否会使 AVX2 代码效率低下。
我知道有像 Intel MKL 这样的库和其他已经可以使用 AVX2 进行矩阵矩阵乘法的库。但我正在寻找我可以查看和学习的代码。论文或 github 链接也可以。
使用 AVX2 的稀疏矩阵-矩阵乘法
计算科学
线性代数
稀疏矩阵
表现
2021-12-11 02:31:09
1个回答
如果矩阵很大,使用诸如 SSE/AVX/... 之类的东西的稀疏矩阵矩阵和稀疏矩阵向量产品通常不会获得太多收益。这是因为这些指令提供了并行执行一些浮点运算的能力——但对于大型稀疏矩阵,您会受到从内存获取数据到处理器所需的时间的限制,而不是实际执行计算。因此,您实际实现乘法的方式并不重要,除非您的数据结构小到可以放入缓存中。
其它你可能感兴趣的问题