This is the official implementation of FusedMM method accepted for publication in IEEE IPDPS 2021 titled "FusedMM: A Unified SDDMM-SpMM Kernel for Graph Embedding and Graph Neural Networks".
Users need to have the following softwares/tools installed in their PC/server. The source code was compiled and run successfully in both Linux and macOS.
GCC version >= 4.9
OpenMP version >= 4.5
Some helpful links can be found at GCC, OpenMP and Environment Setup.
$ ./configure
It will probe the system and update the Makefile and necessary configuration inside kernels for generated optimized kernels.
To build the generated library for single precision float, use
$ make
To test FusedMM for single precision float, use
$ make test
Compiling step will generate all executible files inside the bin folder. To run the tester and timer with a specific kernel using FusedMM, please use the following format:
./bin/xsOptFusedMMtime_fr_pt -input dataset/harvard.mtx
The optimizeed kernel has the prefix xsOptFusedMM*
and the unoptimized kernel has the prefix xsFusedMM*
. There are several parameters which can be provided as follows:
-input <string>, full path of input file (required).
-K <int>, dimension of the embedding.
-C <int> Cachesize in KB to use cache flushing in timer
-nrep <int> Number of repeatation in timer
-T <1,0> want to run the tester along with timer
To conduct experiments using all the datasets of FusedMM paper, please download it from the following link: Datasets
Configure step detects the SIMD width for single precision. For double precision, it is normally half the width. Update "pre" and "vlen" in Makefile accordingly and use make command.
If you find this repository helpful, please cite the following paper:
@inproceedings{rahman2020fusedmm,
title={FusedMM: A Unified SDDMM-SpMM Kernel for Graph Embedding and Graph Neural Networks},
author={Rahman, Md and Sujon, Majedul Haque and Azad, Ariful and others},
booktitle={35th Proceedings of IEEE IPDPS},
year={2021}
}
Please contact the following person if you have any questions: Majedul Haque Sujon ([email protected]
) or, Md. Khaledur Rahman ([email protected]
).