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

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...

Detaylı