GPU Programlama ile Yüksek Boyutlu Yoğun Matrislerin Kronecker Çarpımlarının Hesaplanması


Duran A. , Tunçel M. , Özer H. Ü.

Erciyes Üniversitesi Fen Bilimleri Enstitüsü Dergisi, cilt.36, ss.119-127, 2020 (Hakemli Üniversite Dergisi)

  • Cilt numarası: 36 Konu: 1
  • Basım Tarihi: 2020
  • Dergi Adı: Erciyes Üniversitesi Fen Bilimleri Enstitüsü Dergisi
  • Sayfa Sayıları: ss.119-127

Özet

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.