SYNTOLOGY HomeExplorerAtlasCodeMethodologyAboutDevelopersFeedPricing
Paper · 2109.11081 · 2021

Sextans: A Streaming Accelerator for General-Purpose Sparse-Matrix Dense-Matrix Multiplication

arXiv · PDF · Open in the Atlas

Code that ran

We lifted 10 functions out of this paper's own repositories and ran 10 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.

RepositoryRoleRan
ucla-vast/autobridge pwc_unofficial 10 of 10
FunctionStatusWhere it lives
get_ap_rst_pipeline_rtl Ran ucla-vast/autobridge/src/autobridge/Codegen/PipeliningControl.py
code served (permissive licence) · get_code("346a36ecf70aa891")
get_edges_exclude_scala_and_async_mmap_edges Ran ucla-vast/autobridge/src/autobridge/dotgraph.py
code served (permissive licence) · get_code("a955887c0a9e7c36")
get_hbm_port_side Ran ucla-vast/autobridge/src/autobridge/analyze.py
code served (permissive licence) · get_code("30e979de9d626f80")
get_log_name Ran ucla-vast/autobridge/src/autobridge/util.py
code served (permissive licence) · get_code("d2605499656b89e8")
get_oppo_side Ran ucla-vast/autobridge/src/autobridge/analyze.py
code served (permissive licence) · get_code("8026723d07b8dd78")
get_port_info Ran ucla-vast/autobridge/src/autobridge/analyze.py
code served (permissive licence) · get_code("17950592a59a9295")
get_port_vertices Ran ucla-vast/autobridge/src/autobridge/dotgraph.py
code served (permissive licence) · get_code("c8bca623753d51ef")
get_scaled_edge_width Ran ucla-vast/autobridge/src/autobridge/dotgraph.py
code served (permissive licence) · get_code("599ec8f9cda8fb12")
get_work_dir Ran ucla-vast/autobridge/src/autobridge/util.py
code served (permissive licence) · get_code("e7e3443e002e6d08")
set_general_logger Ran ucla-vast/autobridge/src/autobridge/util.py
code served (permissive licence) · get_code("8d735c4bca533ed9")

Repositories linked to this paper

Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.

Abstract

Sparse-Matrix Dense-Matrix multiplication (SpMM) is the key operator for a wide range of applications, including scientific computing, graph processing, and deep learning. Architecting accelerators for SpMM is faced with three challenges - (1) the random memory accessing and unbalanced load in processing because of random distribution of elements in sparse matrices, (2) inefficient data handling of the large matrices which can not be fit on-chip, and (3) anon-general-purpose accelerator design where one accelerator can only process a fixed-size problem. In this paper, we present Sextans, an accelerator for general-purpose SpMM processing. Sextans accelerator features (1) fast random access using on-chip memory, (2) streaming access to off-chip large matrices, (3) PE-aware non-zero scheduling for balanced workload with an II=1 pipeline, and (4) hardware flexibility to enable prototyping the hardware once to support SpMMs of different size as a general-purpose accelerator. We leverage high bandwidth memory (HBM) for the efficient accessing of both sparse and dense matrices. In the evaluation, we present an FPGA prototype Sextans which is executable on a Xilinx U280 HBM FPGA board and a projected prototype Sextans-P with higher bandwidth comparable to V100 and more frequency optimization. We conduct a comprehensive evaluation on 1,400 SpMMs on a wide range of sparse matrices including 50 matrices from SNAP and 150 from SuiteSparse. WecompareSextanswith NVIDIA K80 and V100 GPUs.Sextansachieves a 2.50x geomean speedup over K80 GPU andSextans-Pachieves a 1.14x geomean speedup over V100 GPU (4.94x over K80). The code is available at https://github.com/linghaosong/Sextans.

For agents

The same record, over MCP at https://syntology.ai/mcp:

get_harvested_code_for_paper("2109.11081")
get_code_for_paper("2109.11081")
have("2109.11081")

Connect an agent — have() is free.