16
views
0
recommends
+1 Recommend
0 collections
    0
    shares
      • Record: found
      • Abstract: found
      • Article: found
      Is Open Access

      Implementing Strassen's Algorithm with CUTLASS on NVIDIA Volta GPUs

      Preprint
      , ,

      Read this article at

      Bookmark
          There is no author summary for this article yet. Authors can add summaries to their articles on ScienceOpen to make them more accessible to a non-specialist audience.

          Abstract

          Conventional GPU implementations of Strassen's algorithm (Strassen) typically rely on the existing high-performance matrix multiplication (GEMM), trading space for time. As a result, such approaches can only achieve practical speedup for relatively large, "squarish" matrices due to the extra memory overhead, and their usages are limited due to the considerable workspace. We present novel Strassen primitives for GPUs that can be composed to generate a family of Strassen algorithms. Our algorithms utilize both the memory and thread hierarchies on GPUs, reusing shared memory and register files inherited from GEMM, fusing additional operations, and avoiding extra workspace. We further exploit intra- and inter-kernel parallelism by batching, streaming, and employing atomic operations. We also develop a performance model for NVIDIA Volta GPUs to select the appropriate blocking parameters and predict the performance for GEMM and Strassen. Overall, our 1-level Strassen can achieve up to 1.11x speedup with a crossover point as small as 1,536 compared to cublasSgemm on a NVIDIA Tesla V100 GPU. With additional workspace, our 2-level Strassen can achieve 1.19x speedup with a crossover point at 7,680.

          Related collections

          Most cited references11

          • Record: found
          • Abstract: not found
          • Article: not found

          A set of level 3 basic linear algebra subprograms

            Bookmark
            • Record: found
            • Abstract: not found
            • Conference Proceedings: not found

            Combining in-situ and in-transit processing to enable extreme-scale scientific analysis

              Bookmark
              • Record: found
              • Abstract: not found
              • Conference Proceedings: not found

              Implementation of Strassen's algorithm for matrix multiplication

                Bookmark

                Author and article information

                Journal
                23 August 2018
                Article
                1808.07984
                86a9fa59-7aa1-4f7f-8ce9-e4d2ddb5d692

                http://arxiv.org/licenses/nonexclusive-distrib/1.0/

                History
                Custom metadata
                FLAME Working Note #88, The University of Texas at Austin, Department of Computer Science, Technical Report TR-18-08
                cs.MS

                Mathematical software
                Mathematical software

                Comments

                Comment on this article