2015
Optimizing CUDA code by kernel fusion: application on BLAS
FILIPOVIČ, Jiří, Matúš MADZIN, Jan FOUSEK a Luděk MATYSKAZákladní údaje
Originální název
Optimizing CUDA code by kernel fusion: application on BLAS
Název česky
Optimalizace CUDA kódu pomocí fúzí kernelů: aplikace na BLAS
Autoři
FILIPOVIČ, Jiří (203 Česká republika, garant, domácí), Matúš MADZIN (703 Slovensko, domácí), Jan FOUSEK (203 Česká republika, domácí) a Luděk MATYSKA (203 Česká republika, domácí)
Vydání
The Journal of Supercomputing, Springer US, 2015, 0920-8542
Další údaje
Jazyk
angličtina
Typ výsledku
Článek v odborném periodiku
Obor
10201 Computer sciences, information science, bioinformatics
Stát vydavatele
Spojené státy
Utajení
není předmětem státního či obchodního tajemství
Odkazy
Impakt faktor
Impact factor: 1.088
Kód RIV
RIV/00216224:14330/15:00083436
Organizační jednotka
Fakulta informatiky
UT WoS
000361531500013
Klíčová slova česky
GPU; CUDA; BLAS; fúze kernelů; generování kódu
Klíčová slova anglicky
GPU; CUDA; BLAS; Kernel fusion; Code generation
Štítky
Příznaky
Mezinárodní význam, Recenzováno
Změněno: 9. 7. 2019 13:16, doc. RNDr. Jiří Filipovič, Ph.D.
Anotace
V originále
Contemporary GPUs have significantly higher arithmetic throughput than a memory throughput. Hence, many GPU kernels are memory bound and cannot exploit arithmetic power of the GPU. Examples of memory-bound kernels are BLAS-1 (vector–vector) and BLAS-2 (matrix–vector) operations. However, when kernels share data, kernel fusion can improve memory locality by placing shared data, originally passed via off-chip global memory, into a faster, but distributed on-chip memory. In this paper, we show how kernels performing map, reduce or their nested combinations can be fused automatically by our source-to-source compiler. To demonstrate the usability of the compiler, we have implemented several BLAS-1 and BLAS-2 routines and show how the performance of their sequences can be improved by fusions. Compared with similar sequences using CUBLAS, our compiler is able to generate code that is up to 2.24x faster for the examples tested.
Návaznosti
EE2.3.30.0037, projekt VaV |
| ||
MUNI/A/0945/2015, interní kód MU |
| ||
MUNI/A/1159/2014, interní kód MU |
|