Advanced Computer Architecture Project
Transkript
Advanced Computer Architecture Project
Advanced Computer Architecture Project Graphics Processing Units (GPUs) ile Resim Bölümleme Sinem ASLAN Grafik İşlemci Nedir? GPU’lar için, ekran kartının üzerine oturtulmuş, görüntü hesaplamalarını yapan ikinci bir CPU’dur. Resim, video ve oyun gibi bilgisayar grafikleri çok fazla işlemci gücüne gereksinim duyar. CPU nun tüm sistem ve grafik işlemeyi gerçekleştirmesi performansı çok düşürür ve CPU’dan daha yüksek paralel kod performansına erişebilen GPU eklenerek bu işlemleri gerçekleştirir. Grafik İşlemci Nedir? Güncel GPU lar, çok çekirdekli CPU lar ile karşılaştırılırsa, 10 kat daha fazla bellek bant genişliği imkanı sağlamakla birlikte veri paralelleştirme ile 10 kat daha fazla floating point verimliliğine ulaşabilir. GPGPU (General Purpose GPU) Artık, GPU’lar, sonradan düşünülmüş bir yan birim olma halinden, modern, güçlü ve programlanabilir işlemcilere dönüşmüş durumdadır ve birçok araştırmacı bu grafik donanımının gücünü, genel amaçlı hesaplamalar için kullanmaya başlamıştır. Son yıllarda, GPGPU hesaplama olarak isimlendirilen bu konularda yapılan araştırmalarda büyük bir artış olmuştur. GPU’nun sağladığı avantajlar Çok geniş bir bellek bant genişliği ve hesaplama kolaylığı sağlamaktadır. Örneğin, NVIDIA GeForce 6800 Ultra (Haziran. 2005’de $417 a satışı yapılmaktaydı) 35.2 GB/sn bellek bantgenişliği ve ATI X800 XT ($447) 63 GFLOPS (3.7 GHz Intel Pentium4 SSE birimi için teorik peak i 14.8 GFLOPS dur.) sağlamaktadır. 2005 yılında en son geliştirilmiş olan GPU 300 milyonu aşkın transistör içermekte ve yaklaşık 110 nanometre üzerine yerleştirilmişti. GPU’nun sağladığı avantajlar GPU ların programlanabilir floating-point performansı, CPU larla karşılaştırıldığında çok daha hızlı artmaktadır. GPU ile Görüntü Bölümleme Uygulamaları: Resim bölümleme, pikselleri arkaplana veya önplana ait olup olmamalarına göre sınıflandırma işlemine verilen isimdir. Bölümlemenin en basit uygulaması eşikleme yöntemi ile gerçekleştirilir. piksel GPU ile Görüntü Bölümleme Uygulamaları: Implicit Surface Deformation yöntemleri (düzeykümesi teknikleri) eşiklemeden çok daha etkindir fakat çok daha fazla hesaplama gerektirir. Bu yöntemler, bir kısmi diferansiyel eşitliği (PDE) belirterek başlangıç kaynak yüzeyinden son bölümlenmiş yüzeye doğru gelişir. Sonuç olarak elde edilen yüzey, sürekli ve kapalı bir yüzeydir. Yang, R. and Welch, G. 2002. Fast image segmentation and smoothing using commodity graphics hardware. (Dec. 2002) Piksel yoğunlukları açık bir biçimde eşik değerinin altında veya üzerindeyse bu yöntemler etkin bir şekilde uygulanabilir. Fakat özellikle nesnelerin sınırları olmak üzere bazı noktalar nadiren açıktır. Eşikleme resim gürültüsüne karşı çok hassastır. Bu yüzden, eşikleme işleminin sonrasında genellikle, nesne sınırlarını yumuşatmak ve fazlalık olan pikselleri ortadan kaldırmak için yapısal (morphological) işlemler gerçekleştirilir. Ci Yang, R. and Welch, G. 2002. Fast image segmentation and smoothing using commodity graphics hardware. (Dec. 2002) 1.Bölümleme Girdi ve arkaplan resimleri arasındaki karesi alınan farklar hesaplanırken register combiner lar iki aşamada kullanılırlar. Ci girdi piksel rengi ve Cb ilgili arkaplan piksel rengi olsun. ∆ =|| C i − C b || 2 = (C i − C b ) ⋅ (C i − C b ) Ci Yang, R. and Welch, G. 2002. Fast image segmentation and smoothing using commodity graphics hardware. (Dec. 2002) İki resim ortogonal projection kullanılarak taranır. Register Combiner (RC) ∆ yı hesaplayacak ve frame buffer ın alfa kanalında saklayacak şekilde programlanır. Alfa değeri yeterince yüksek olan pikseller testi geçerler (Eşik değerini kullanıcı belirler) ve frame buffer da sonuç olarak segmente edilmiş pikseller yer alır. Ci Yang, R. and Welch, G. 2002. Fast image segmentation and smoothing using commodity graphics hardware. (Dec. 2002) ∆ Bölümleme işleminin tamamı, çok pahalı olmayan grafik kartlarında bile yer alan sadece iki texture birimi ve iki RC aşaması gerektirmektedir. Ci Yang, R. and Welch, G. 2002. Fast image segmentation and smoothing using commodity graphics hardware. (Dec. 2002) 2. Yapısal İşlemler erosion ve dilation işlemleri gerçekleştirilmiştir. Erosion işlemi, ilgili piksel ve onun 8-komşuluğu içerisindeki minimum piksel değerini çıktı piksel değerine eşitler. Eğer girdi resmi renkli bir resimse, her kanal üzerinde ayrı ayrı çalışılır. Dilation işlemi ise erosiona çok benzemekle birlikte ilgili piksel ve 8-komşuluğu içerisindeki maksimum piksel değerini çıktı pikseline yerleştirir. Ci Yang, R. and Welch, G. 2002. Fast image segmentation and smoothing using commodity graphics hardware. (Dec. 2002) 2. Yapısal İşlemler OpenGL Version 1.2 de bulunan GL_MIN ve GL_MAX fonksiyonları ile kaynak ve hedef renkleri arasında minimum ve maksimum değerleri tespit edilebilmekte fakat örneğin dilation işlemi için, blending fonksiyonu GL_MAX a ayarlandıktan sonra, resim her biri farklı bir yöne bir piksel ofsetinde olacak şekilde 8 kere kaydırılır ve yeniden çizilir. Bu resim kaydırma, anti-alizing efektleri elde etmek amacıyla yapılmaktadır. Uygulaması kolay bir yöntemdir, fakat sekiz kere yapılan tekrar (geçiş), en son çıkan grafik kartları kullanıldığında dahi oldukça yavaş çalışmaya sebep olur. Ci Yang, R. and Welch, G. 2002. Fast image segmentation and smoothing using commodity graphics hardware. (Dec. 2002) 2. Yapısal İşlemler Bu çalışmada, birden fazla geçiş işlemini birleştiren multitexture desteği kullanılmıştır. Tarama geçişlerini yarısı kadar azaltmak için iki texture birimi kullanılmıştır. Texture blending fonksiyonu min-max şeklinde sonuç döndüremediği için, RC programlanmıştır. Register combiner da bulunan multiplex fonksiyonu, iki pikselden minimum veya maksimum olanı seçecek şekilde kullanılmıştır. RC, üç RGB kanalını birbirinden bağımsız olarak seçemez ve uygulanan algoritmada alpha değerine bağlı olarak seçilen piksel değeri esas alınmıştır. Ci Yang, R. and Welch, G. 2002. Fast image segmentation and smoothing using commodity graphics hardware. (Dec. 2002) 2. Yapısal İşlemler İlk combiner aşamasındaki tex0 ve text1 yer değiştirdiğinde dilation işlemi gerçekleşir. Ci Yang, R. and Welch, G. 2002. Fast image segmentation and smoothing using commodity graphics hardware. (Dec. 2002) 2. Yapısal İşlemler Bu çalışmada ayrıca, OpenGl 1.3 de bulunan bazı filtreleme fonksiyonları kullanılarak da testler yapılmış, fakat bunlar sonucunda işlemler 10 kat yavaşlamıştır ve bu yüzden yapısal işlemler Algoritma 2 esas alınarak gerçekleştirilmiştir. Bu filtreleme fonksiyonlarının tercih edilmemesinin nedenlerinden birisi, intensity resimlerine uygulanan yapısal işlemler lineer olamaz, bir diğeri de, binary resimler üzerinde işlemler yapan yapısal filtreler donanımal değil yazılımsal bir çözüm arama yollarındandır. Ci Yang, R. and Welch, G. 2002. Fast image segmentation and smoothing using commodity graphics hardware. (Dec. 2002) 3. Sonuç •Microsoft Windows 2000 altında OpenGL kullanılmıştır. •Kıyaslama amacıyla Intel’in Image Processing Library (IPL) kullanılmıştır. IPL fonksiyonları, kullanıcın ilgili işlemci ile en uygun performansı elde edebilmesi için Intel’in Pentinum işlemcilerinin her biri için optimize edilmiştir. •IPL, dilation ve erosion işlemlerini doğrudan desteklerken, herhangi bir arkaplan bölümleme fonksiyonuna rastlanmamıştır, bu yüzden iplSubtract() ve iplSquare() fonksiyonları ile farkların kareleri hesaplanmış ve bir döngü içerisinde eşikleme işlemi gerçekleştirilmiştir. Bu yazılım uygulaması ve donanım uygulaması birkaç işlemcide ve grafik kartında gerçekleştirilmiştir. Ci Sonuçlar Resmi yumuşatmak için kullanılan yapısal işlemler, 2 erosion, 3 dilation, ve bir erosion şeklinde olmuştur. Şekil 4: Resim Bölümleme: Üst satırın sağ ve solunda girdi ve arkaplan reismleri görülmektedir. 10, 15 ve 20 eşik değeri ile bölümlenmiş resimler ikinci satırda, ve yapısal işlemler sonucu elde edilen resimler 3. satırda yer almaktadır. Ci Sonuçlar Şekil 5: Yapısal işlemler sonrasındaki renkli ve binary resimler. Üst satırda orjinal resimler, alt satırda donanımsal yapısal işlemlerin her resme uygulandıktan sonraki sonucu görülebilir. İlk ve üçüncü resim 3 dilation işleminin, 2. ve 4. resimde erosion işlemlerinin sonuçlarını vermektedir. Yazılımsal uygulamada alınan sonuçlar da bunların aynısıdır. Ci Sonuçlar 4 farklı bilgisayarda ve bölümleme ve yapısal işlemler farklı boyutlarda girdi resimleri ile yapılmıştır. Her resim için 5 dilation ve 5 erosion işlemi donanımsal ve yazılımsal olarak ayrı ayrı gerçekleştirilmiştir. 50 tekrar için alınan ortalama süreler görülebilir. Harcanan zamanın resmin boyutu ile lineer bir şekilde arttığı ve grafik donanımı uygulamasının CPU hızından bağımsız olduğu görülmektedir. Ci Sonuçlar •Farklı CPU kombinasyonları ve VGA çözünürlüğü kullanan grafik kartları için zaman karşılaştırması yapılmıştır. •Bu çalışmada gerçekleştirilen donanımsal çözümün, yazılımsal çözümden 5 kat daha hızlı olduğu görülmektedir. Yapısal işlemler için de GeForce4 kullanan donanımsal uygulama, 2.2. GHz li CPU da uygulanan yazılımsal çözümden %30 daha hızlıdır. •Ayrıca, grafik donamınında bölümleme yapmak bellek bant genişliği ihtiyacını %25 azaltmaktadır.
Benzer belgeler
Introduction to GPU Programming - Ege Üniversitesi Fen Fakültesi
Graphics Processing Unit (GPU) (3)
GPU pazarı hareketlenmektedir,
CPU üreticileri GPU’larla ilgilenmeye başlamıştır.
AMD, ATI firmasını 2006 yılında satın almıştır.
Intel CPU-GPU hibrit mi...