Erciyes Üniversitesi Fen Bilimleri Enstitüsü Dergisi, cilt.36, sa.1, ss.120-128, 2020 (Hakemli Dergi)
Sayısal lineer cebir içinde yer alan ve birçok bilimsel hesaplama yöntemi
içinde kullanılan önemli matris işlemlerinden biri Kronecker (tensör)
çarpımıdır. Bu tip çarpımda işleme giren yoğun matris boyutu arttıkça hafıza
ve zaman maliyeti çözülmesi gereken önemli bir problem olarak karşımıza
çıkmaktadır. Bu çalışmamızda GPU üzerinde paralel programlama
uygulaması yaparak seri programlamada karşılaşılan zaman maliyetini
azaltmaya çalışıyoruz. Bunun için GPU paralelleştirme algoritması
tasarlıyoruz. Rasgele sayı üreten fonksiyon ile değerleri ondalık sayılar olan
gerekli büyük yoğun (dense) matrisler üretiyoruz ve CUDA iş parçacıklarıyla
uygulama yapıyoruz. CPU ile GPU paralel programlama uygulamasını
karşılaştırıyoruz. GPU programlama teknolojisinin bu uygulama için avantaj
ve sınırlamalarını tartışıyoruz.
Kronecker (tensor) product is one of the important matrix
operations in numerical linear algebra and used in many scientific
computational methods. As the size of dense input matrix increases, memory
and computation cost become a challenging issue in this type of operation. In
this work, we use GPU parallel programming in order to diminish the long
wall clock time consumed by serial programming. We design a new algorithm
for GPU parallel programming. We generate the necessary large dense
matrices using pseudo-random number generator and implement the
algorithm via CUDA threads. Moreover, we compare the performance of CPU
and GPU parallel programming implementations. We discuss the advantages
and limitations of GPU programming technology in this particular
application.