Waifu2X görüntü işleme ve nVidia sorunları

Neden OpenCL

Başlangıçta, Waifu2X CUDA sürümünde oluşturuldu, ancak OpenCL varyantları da var, örneğin, her zaman kullandığım DeadSix27 sürüm 5.3.3’ün sürümü.

Ama neden CUDA değil de tam olarak OpenCL? Sebeplerden biri, nVidia’dan özel kitaplıkları “besleme” ihtiyacıdır, ancak asıl sebep bu değil, bir şekilde uygun olanı bulana kadar bir düzine gigabayt seçeneği indirerek kitaplıkları seçtim.

Ana sebep işin hızıdır, CUDA seçeneği hız açısından belirsiz çalışır (çoğu durumda kaybeder), herhangi bir görüntünün ilk işlenmesi oldukça uzundur (aynı işi yapan en hızlı profili seçtim), işlem yapıldığında yeniden başlatıldığında, tüm süreç daha hızlıdır, ancak PNG sıkıştırmasını CUDA seçeneği kadar hızlı yaparsanız, sonuçları önbelleğe almış olarak OpenCL seçeneği ilk seferde işi yapabilir.

Waifu2X’i kendiliğinden kullandığım (bağlam menüsüne komutlar ekledim) ve dosyaların her zaman farklı olduğu göz önüne alındığında, CUDA sürümü hız açısından Waifu2X’in yapılandırılmamış OpenCL sürümüne her zaman yakın olmaktan uzaktır.

Örneğin, tamamen farklı bir resim çektim ve CUDA versiyonu çok daha kötü oldu:

Çok önemli bir nüans daha olsa da, bu boyuttur, CUDA Waifu2X’in çalışması için gerekli olan, yalnızca nVidia’ya ait özel kitaplık, tüm dosya ve modellerle birlikte OpenCL Waifu2X’ten 2-4 kat daha ağırdır…

Ve son olarak, bu metni yazarken kelimenin tam anlamıyla keşfettiğim üçüncü neden, asıl olandan daha az ciddi olmayan, yetersiz belleğe sahip ekran kartlarıyla ilgili sorunlar…

Aslında, 1 GB belleğe sahip GTX 750, CUDA ile çalışmak için Waifu2X varyantını kullanamıyorum ve minimum blok boyutu yardımcı olmuyor, farklı profiller kullanmaya çalışmanın yanı sıra, yeterli bellek yok ve ” iş” bitti…

Ve CUDA’nın “özetinde” daha ciddi bir eksi, aşağı yukarı güncel bir video kartına duyulan ihtiyaçtır, nVidia tescilli kitaplıkları zaten GTS 250 ve GTX 570 ile çalışmayı reddediyor:

Ve GTS250 ve GTX570 testlerini tamamladığımda ve GTX1070’i sisteme geri verdikten sonra, video kartının yeni bir sürücü olduğunda eski sürücüyü kullanmaya karar verdiğini hemen fark etmedim. Waifu2X’in CUDA sürümü CUDA sürücüsü olmadığına lanet ettiği için GTX 1070 için en son sürücüyü manuel olarak yeniden yüklemek zorunda kaldım…

Elbette, GPU-Z’yi gösteren sürücünün 461.92 sürümünü de yükledim, ancak 391.35 gerçekten işe yaradı, aksi takdirde Waifu2X’in CUDA sürümü CUDA’nın yokluğuna yemin etmezdi.

Katılımcılar ve test koşulları

Test konularımız şunlardır:

0) MSI GeForce 8500GT 256MB (maalesef “kalbinin” bir bıçağı ve yongaları vardı, testler uğruna onunla uğraşmak istemiyorum, yine de son derece küçük olan yaklaşık 8gflops performans çıkardı … )
1) Palit GeForce GTS 250 1GB 6 pinli
2) Palit GeForce GTX 570 Sonic Platinum 1.28GB, 8+6-pin (boş, kafa derisi alınmış, ısınmış)
3) Palit GeForce GTX 750 1GB
4) MSI GeForce GTX 1070 AERO OC 8GB 8-pin
5) Asus Radeon HD 7870 DirectCU II TOP 2GB, 6+6-pin
6) Sapphire Radeon RX 560 4GB 6 pinli
7) AMD Radeon RX 5600M 6GB*

* – MSI Alpha 15, notebook inceleme testlerinden alınan sonuçlar, bir dizüstü bilgisayarı incelerken, kaynak dosya eldekilerden seçildi (testler için sınırlı süre), sonuçlar mümkün olandan daha düşük olabilir, RX5600M’nin GTX 1070 ile karşılaştırılması yalnızca dizüstü bilgisayar incelemesi ile ilgilidir, sonuçlar bu makale sadece referans içindir.
-= MSI Alpha 15 Gaming Laptop İnceleme ve Testi: Dizüstü Bilgisayar Bilgisayardan Daha Hızlı Olduğunda =-

Test koşulları son derece basit, video kartının performansına bağlı olarak, çok uzun sürmemesi ve çok hızlı işlenmemesi için uygun boyutta bir test dosyası seçeceğim.

Dosya çok küçükse, işleme çok az zaman alacak ve sonuçlar yeterince doğru olmayacak ve dosya çok büyükse, sonucun doğruluğunu önemli ölçüde iyileştirmeden işlenmesi çok uzun zaman alacaktır. , çünkü dosya video kartının performansına bağlı olarak seçilecektir.

Gflops-Filter’ın sonucu karşılaştırmaya tabidir, çünkü yalnızca görüntü üzerindeki çalışma hızını yansıtır (GPU ile çalışma devre dışı bırakılmışsa video kartının veya işlemcinin gerçek performansı).

Gflops sonucu genel hızı yansıtır ve dikkate alınmaz, genel Gflops sonucu yalnızca görüntünün kendisi üzerindeki çalışmayı değil, aynı zamanda dosyaları okumak / yazmak için harcanan zamanı vb. hesaba katar, aslında bu sonuç bağlıdır sadece video kartının hızında değil, aynı zamanda işlemcinin ve dosya sisteminin hızında da buna ihtiyacımız yok.

Video kartlarının farklı performans seviyeleri için sadece 3 dosya, boyutlar dosya adında imzalanır:

Komut satırı şuna benziyor, ancak sonunda “duraklat” komutunu atladım:
“waifu2x-converter-cpp.exe –force-OpenCL –block-size 1024 –scale-ratio 2.0 -m ölçek -o %~d1%~p1 -i %1”

“–block-size 1024” – bu blok boyutudur, iş için ayrılan bellek miktarı ve işin hızı buna bağlıdır, optimum performans için video kartına bağlı olarak seçilir.

“-o %~d1%~p1 -i %1” – korkmayın, “-o” parametresi sonucun nereye kaydedileceğini ve “-i” parametresi hangi dosyanın işlenmek üzere alınacağını belirtir, yazdım tüm bu “karakter seti”, Resmi basitçe “toplu iş dosyasına” taşıyarak, işleme hemen başladı ve dosyayı orijinal dosyayla aynı dizine kaydetti, karmaşık bir şey yok.

Modeller klasörüne ve “waifu2x-converter-cpp.exe”ye mutlak yolum yok kaynak dosyalar Waifu2X yürütülebilir dosyalarıyla aynı yerdedir, herhangi bir klasörden bir resmi işlemeyi mümkün kılarsanız, benim durumumda komut satırı şöyle görünecektir:
“C:\_PORTABLE_\waifu2x_533\waifu2x-converter-cpp.exe –model-dir C:\_PORTABLE_\waifu2x_533\models_rgb –force-OpenCL –block-size 1536 –scale-ratio 2.0 -m scale -o %~d1%~p1 -i %1”
+ sonraki satırda “duraklat” veya konsol penceresinin otomatik olarak kapanmasını önlemek için başlangıçta “cmd.exe /k” kullanın.

Sonuçlar

Dizüstü bilgisayar incelemesinden GTX 1070 ve RX 5600M hariç, kolaylık sağlamak için GPU-Z ile sonuçlar Sonuçlar önceki makalemden alınmıştır:

*İnceleme Sonuçları -= MSI Alpha 15 Gaming Laptop İnceleme ve Testi: Dizüstü Bilgisayar Bilgisayardan Daha Hızlı Olduğunda =-
mevcut makale için hazırlanan sonuçlarla doğrudan karşılaştırmaya tabi değildir, çünkü orijinal görüntü, maksimum performansı belirlemek için yetersiz boyutlarda çekilmiştir.

GTX 1070 sistemine döndükten sonra, sürücüye dikkat etmedim ve eski sürücüyle (GTX 570 için mevcut olan en yeni sürücü) testler yaptım, bu nedenle GTX 1070 için zaten kurulu olan en son sürücüyü manuel olarak iade etmek zorunda kaldım. ve testleri tekrar yapın.

Bu arada GPU-Z, GTX 570’ten sonra kalan sürücü sürümünü yanlış gösteriyor:


Çözüm

Kesinlikle, Waifu2X’in CUDA sürümünün, görüntü işleme yardımcı programının bu sürümüne kalın bir çarpı işareti koyan birçok dezavantajı vardır.

Ancak DeadSix27’den Waifu2X’in OpenCL versiyonu, çok eski video kartlarıyla bile çalışabilir ve aynı zamanda, Waifu2X’in OpenCL uygulaması için az miktarda bellek bir engel değildir, 256 MB video kartlarıyla bile çalışır, bunu açıkça gösteremesem de çünkü MSI 8500GT’m bir bıçak yakaladı (fotoğraftaki lambanın arkasında).

Bu yazıyı yazarken tesadüfen başka bir “bahçedeki taş” nVidia ve CUDA keşfettim…

256 blok boyutuyla çalışırken, eski sürücü 1715 Gflops ve 1870 Gflops sonuçlarıyla yeni nVidia sürücüsüne yenildi, ancak blok boyutu 512’den fazla olduğunda, yeni sürücü koşulsuz olarak eski sürücüye yenildi, özellikle de bir eski sürücünün 2433 Gflops ve yeni nVidia sürücüsünün yalnızca 2172 Gflops ürettiği 1024 blok boyutu.

Ayrıca, aynı testleri tekrar tekrar yaptım, aniden hata oluştu, ancak hata ~% 1 içindeydi ve farklı sürücüler arasında önemli bir performans farkı veremedim, bunun için aslında her biri için orijinal görüntünün en uygun boyutunu seçtim. Hatayı en aza indirmek için ekran kartı…

Ama nVidia’dan gelen ekran kartlarıyla “tortuları” bırakalım ve AMD’ye geçelim.

AMD durumunda, sürücülerle ilgili herhangi bir sorun yoktu, sürücünün birkaç sürümünü yüklemiş olmama rağmen, video kartları nVidia’nın aksine en son sürücüyü seçti.

AMD ekran kartlarıyla sürücüleri değiştirmek zorunda kalmadım, bir sürücü hem eski 7870’i (esas olarak GTX 570 ile aynı yaşta) hem de “yeni” RX 560’ı (prensipte RX 6900XT’yi de destekliyor, ama ben yapmıyorum) destekliyor. sahip değilim).

Performans açısından, HD 7870’in RX 560’tan çok daha üretken olduğu ortaya çıktı, ancak 7870 versiyonum tipik olmaktan uzak, her 2012 ekran kartında fabrikadan çipte 1100 MHz yok.

Genel olarak, çalışma hızının öznel “duygularını” hesaba katarsak, resim şöyle görünür:

– HD 7870 performans olarak hala yeterli seviyede, uzun zaman alıyor ama bekleyebilirsin, 1920×1080 veya 3840×2160 (gürültü azaltma modunda) oldukça iyi işlenebilir, sizi pek rahatsız etmez.

– RX560’ı hız aşırtma yapmadan kullanmak zaten zor ama GTX570 ve GTX750 ve benzer performans seviyesindeki ekran kartları fazla zaman kaybetmeden görüntüleri sadece HD çözünürlükte, yani çok düşük bir performans seviyesinde işlemenize izin verecek.

– GTX1070 ve hatta daha fazlası, RX 5600M çok fazla zaman harcamadan 3840×2160 görüntüleri işleyebilir, oldukça iyi bir performans seviyesi.

Hepsi bu, dikkatiniz için teşekkür ederim.

Similar Posts

Leave a Reply

Your email address will not be published.