RpFp
Overview
RpFp is a memory accessor for using the reduced-precision formats with truncated mantissa part of the IEEE binary floating-point format (binary32 and binary64). It can represent arbitrary precision in 8-bit steps by combining 8-/16-/32-bit words (uint8/16/32). These arrays are stored in memory in the Structure-of-Arrays (SoA) manner. E.g., for 48-bit, a 32-bit word array and a 16-bit word array are independently allocated in memory, and the structure holds the pointers to them. RpFp is written in C++ and has the CPU, CUDA, and HIP versions. They have been tested on x86 and NVIDIA and AMD GPUs.
This package contains the codes to obtain the results reported at MCSoC 2023 (see Publications below). It contains not only RpFp itself (in rpfp directory) but also example implementations of linear algebra kernels using RpFp (AXPY and CSRMV in rpfp-la directory and AMBMV in nsparse directory). AMBMV is a sparse matrix-vector product based on Adaptive Multi-level Blocking (AMB) format developed by Nagasaka et al. (ICCS 2016). Since it was implemented only in CUDA, this package includes a port of it (nspaese 1.5, but SpMV part only) to CPU and HIP with RpFp applied.
Download
- RpFp version 0.1c (tgz, 331KB) (October 5, 2023)
Publications
- Daichi Mukunoki, Masatoshi Kawai, Toshiyuki Imamura, Sparse Matrix-Vector Multiplication with Reduced-Precision Memory Accessor, 16th IEEE International Symposium on Embedded Multicore/Many-core Systems-on-Chip (MCSoC 2023), 2023 (accepted).
- Daichi Mukunoki, Toshiyuki Imamura, Reduced-Precision Floating-Point Formats on GPUs for High Performance and Energy Efficient Computation, Proc. IEEE International Conference on Cluster Computing (Cluster 2016), pp. 144-145, Sep. 13, 2016.