-
公开(公告)号:US20240169019A1
公开(公告)日:2024-05-23
申请号:US17991493
申请日:2022-11-21
Applicant: Advanced Micro Devices, Inc.
Inventor: ANTHONY GUTIERREZ , ALI ARDA EKER
IPC: G06F17/16
CPC classification number: G06F17/16
Abstract: A technical solution to the technical problem of how to improve performance when performing SpMV multiplication uses sparse matrix row similarity to schedule SpMV multiplication operations. CSR representation metadata is generated for a CSR representation and indicates the locations of non-zero values in the rows of the corresponding sparse matrix or the cache locations of column data needed for SpMV multiplication operations. The CSR representation metadata is used to determine the similarity of rows in the sparse matrix based upon Cosine similarity, Jaccard similarity, Locality Sensitive Hashing (LSH) that approximates Jaccard similarity, or other measures of similarity. The row similarity is used to schedule SpMV multiplication operations to increase data locality, reduce cache misses, reduce time stalling on memory accesses, and reduce bandwidth consumption. Implementations include the use of similarity thresholds to schedule SpMV multiplication operations on particular threads and processing elements and load balancing to further improve performance.
-
公开(公告)号:US20240160666A1
公开(公告)日:2024-05-16
申请号:US17985136
申请日:2022-11-10
Applicant: ADVANCED MICRO DEVICES, INC.
Inventor: ALI ARDA EKER , ANTHONY T. GUTIERREZ
IPC: G06F16/901
CPC classification number: G06F16/9024
Abstract: A system includes a processor configured to iteratively, until values of a frontier vector indicate all nodes of a graph have been discovered, select a set of rows from a matrix representation of the graph based on values of the frontier vector. The set of rows includes fewer rows than the matrix representation. The processor is further configured to calculate an output vector for a current iteration as a dot product between each of the selected set of rows in the matrix representation and the frontier vector, with the output vector for the current iteration acting as the frontier vector for a next iteration and the output vector for the next iteration initialized to the frontier vector for the current iteration.
-