Yazar
Akgün, İbrahim Ümit
Basım Tarihi
2015-01
Konu
Seyrek matrisler, Veri işleme
Tür
Belge
Dil
İngilizce
Dijital
Evet
Yazma
Hayır
Kütüphane
Özyeğin Üniversitesi
Kayıt Numarası
f3bbb444-be90-44ae-88c0-927751bb9190
Lokasyon
Bilgisayar Bilimleri Bölümü
Tarih
2015-01
Örnek Metin
Seyrek matris-vektör çarpımı (spMV), bilimsel hesaplamada bir çekirdek işlemidir. Bir matrisin birçok farklı vektörle tekrar tekrar çarpılmasıyla ilgili problemler mevcuttur. Bu tür problemler için spMV kodunun matris bazında özelleştirilmesi, önemli ölçüde daha hızlı kod üretme potansiyeline sahiptir. Bu aslında program üretmenin motive edici örneklerinden biri oldu. Program oluşturmayı kullanarak spMV kodu, döngü masraflarını ortadan kaldırmak ve aynı zamanda yüksek etkili optimizasyonları mümkün kılmak için tamamen açılabilir. Bu çalışmada, kodu belirli bir matrise göre açarak spMV'nin uzmanlaşmasına odaklanıyoruz. Gerçek dünyadaki bilimsel hesaplama alanlarından toplanan 70 seyrek matrisi kullanarak performansın deneysel bir değerlendirmesini sağlıyoruz. Kaynak düzeyinde kod oluşturmaya ve genel amaçlı bir derleyicinin tüm aşamalarını geçmeye gerek kalmadan, yüksek performanslı montaj kodunun hızlı bir şekilde oluşturulabileceği optimizasyonlar sunuyoruz. Son olarak incelediğimiz optimizasyonlardan birinin kod dönüştürme geçişi olarak nasıl uygulanabileceğini sunuyoruz., Seyrek matris-vektör çarpımı (spMV) yıllık programlamalarda kullanılan, çok temel bir işlemdir. Kimi kayıtlı problemlerde aynı matris farklı vektörlerle tekrar tekrar çarpılmaktadır. Bu problemlerde kullanılan spMV matrisine göre özelleşmiş bir şekilde optimize edilerek çok ciddi performans artışları kesilir. Bunun için program üretim teknikleri uygundur. Program üretimi ile spMV kodundaki döngüler u yükleri kaldırılabilir, ayrıca etkili eniyilemeler uygulanabilir. Bu başarılı olabilir, spMV'nin tam döngüyle açılımı yapıldıktan sonra istenen matrise göre seçildiği incelendi. Gerçek kopyalardan oluşan 70 adet matris üzerinde tek tek performans çalışmaları yaptık. Ayrıca kaynak kod üretimi ve sonrasında genel amaçlı derleyici kullanımı gerekmeyecek kadar yüksek kalitede makine kodlama hızlı bir şekilde üretmemizi sağlayacak eniyilemeler sunuyoruz. Son olarak da, tanımladığımız eniyilemelerden birinin kodlanmış şekilde nasıl tanımlanabileceğini gösteriyoruz.