惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 叶小钗
云风的 BLOG
云风的 BLOG
G
Google Developers Blog
S
SegmentFault 最新的问题
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
美团技术团队
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
H
Hackread – Cybersecurity News, Data Breaches, AI and More
D
DataBreaches.Net
F
Fortinet All Blogs
TaoSecurity Blog
TaoSecurity Blog
D
Docker
C
Cybersecurity and Infrastructure Security Agency CISA
K
Kaspersky official blog
宝玉的分享
宝玉的分享
腾讯CDC
Google Online Security Blog
Google Online Security Blog
Recorded Future
Recorded Future
T
The Exploit Database - CXSecurity.com
T
The Blog of Author Tim Ferriss
V
V2EX
S
Securelist
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
C
CERT Recently Published Vulnerability Notes
A
Arctic Wolf
Scott Helme
Scott Helme
L
LINUX DO - 热门话题
Y
Y Combinator Blog
P
Proofpoint News Feed
T
Tor Project blog
AWS News Blog
AWS News Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
The Last Watchdog
The Last Watchdog
博客园 - 聂微东
T
Threat Research - Cisco Blogs
B
Blog
Attack and Defense Labs
Attack and Defense Labs
L
Lohrmann on Cybersecurity
C
CXSECURITY Database RSS Feed - CXSecurity.com
阮一峰的网络日志
阮一峰的网络日志
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
N
News and Events Feed by Topic
博客园 - 司徒正美
H
Help Net Security
C
Cisco Blogs
C
Check Point Blog
S
Secure Thoughts

Amicoyuan

Greyson Chance 2023 Beijing 重启Life分类-Seasons SUMMA:Scalable Universal Matrix Multiplication Algorithm[未更新] 论文阅读:Towards Efficient SpMV on Sunway Manycore Architectures
论文阅读:稀疏矩阵向量乘法在申威众核架构上的性能优化
John Doe · 2023-07-03 · via Amicoyuan

稀疏矩阵向量乘法在申威众核架构上的性能优化

文章链接:

稀疏矩阵向量乘法在申威众核架构上的性能优化 - 中国知网 (cnki.net)

文章总结

固定划分方法

  1. 所有计算完再写回
  2. 子矩阵(任务)->子矩阵小块(核心计算)
  3. 将子矩阵小块中的非零元存储在一起,以适应申威处理器上的DMA操作。(Packing)
  4. 核心:寄存器通信->RMA
  5. 根据LDM大小提前计算,充分利用LDM空间,换句话说就是保证计算所需都在LDM中
  6. 加载冗余X,避免DMA隔断

一维负载均衡划分方法

  1. 尽量使从核处理非零元数量相当
  2. 4个层次:原矩阵->矩阵带->子矩阵->小块
  3. 交替分配矩阵带给从核行
  4. 核心计算依然是子矩阵小块,同固定划分方法

二维负载均衡划分方法

  1. 矩阵带分配采取贪心的方法,尽可能保证不同行之间的负载均衡
  2. 解决一维负载均衡方法带来的细粒度同步问题
  3. 非零元过少的矩阵带,交给一个从核完成,而不再均分给同行上的几个从核
  4. 一维和二维主要解决预处理,计算还是固定划分中的子矩阵小块
  5. 排序->根据矩阵带非零元数量从大到小排序(逻辑排序)
  6. Select函数会在所有ROWS行的从核中,选择出目前非零元数量最少的一行,并将当前的矩阵带i分配给它
输入:tiles,nnz_tile,ROWS
输出:set
nnz_set<-0
for i = 0 to tiles - 1 do
Select id if nnz_set[id] is minimal //注意:这里是选从核行,不是矩阵带
nnz_set[id] += nnz_tiles[i]
set[id] = set[id]U{i} //任务分配
end for

这里注意,我们在固定划分那里解决了数据局部性差等问题,之后的一二维划分,都是在做任务分配,核心计算子矩阵小块一直未改变