Google Cloud TensorFlow maliyet performans testi: CPU, GPU'dan daha iyi performans gösteriyor

Derlemeyi ve organize etmeyi isteyin

Qubit Üretildi | Genel Hesap QbitAI

Yazar Max Woolf, Carnegie Mellon Üniversitesi'nden mezun oldu ve Apple'da yazılım mühendisiydi

Keras ve TensorFlow'u bazı kişisel derin öğrenme projeleri için kullanıyorum. Ancak Amazon ve Google'ın bulut hizmetlerini kullanmak ücretsiz değil, maliyet açısından paradan tasarruf etmek için GPU bulut sunucuları yerine daha ucuz CPU bulut sunucuları kullanmaya çalışıyorum. Beklemediğim şey, bunun sadece model eğitimimi yavaşlatmasıydı.

Bu yüzden onu daha fazla incelemeye karar verdim.

Google Compute Engine'de (GCE) GPU örneğinin fiyatı 0,745 USD / saattir (0,7 USD / saat GPU + 0,045 USD / saat n1-standard-1 bulut sunucusu). Birkaç ay önce Google, 64 vCPU'lu (sanal CPU'lar) Intel Skylake mimarisine dayalı bir CPU örneği başlattı.

Daha da önemlisi, bunlar Öncelikli CPU örneklerine (daha ucuz ve daha ekonomik bir ekonomik sanal makine hizmeti) uygulanabilir. Bu hizmet GCE'de 24 saate kadar mevcut olabilir ve hizmet herhangi bir zamanda sonlandırılabilir. Maliyet yalnızca standart örnekler içindir. % 20'si. 64 vCPU ve 57,6 GB RAM'e sahip öncelikli bir n1-highcpu-64 bulut sunucusu, saatte 0,509 ABD doları olarak fiyatlandırılır; bu, bir GPU bulut sunucusunun fiyatının yaklaşık üçte ikisi kadardır.

64 vCPU kullanarak model eğitimi, GPU eğitimi kullanmak kadar hızlıysa (biraz daha yavaş olsa bile), o zaman CPU kullanmak, maliyet açısından açıkça daha uygun maliyetli olacaktır. Ancak bu sonuç, derin öğrenme yazılımı ve GCE platform donanımının% 100'e ulaşan işletim verimliliğine dayanmaktadır.Eğer verimlilik çok yüksek değilse, vCPU sayısı azaltılarak maliyet düşürülebilir.

Peki, derin öğrenme eğitimi için GPU yerine CPU kullanmak uygun mu?

Kurmak

Gerçek koşullar altında derin öğrenmenin performans testi komut dosyalarını, Docker konteyner ortamını ve TensorFlow ile CNTK karşılaştırma testini daha önce tamamlamıştım. Yalnızca birkaç küçük ayarlamayla komut dosyası, CLI parametreleri ayarlanarak CPU ve GPU örnekleri için kullanılabilir. Ayrıca en son TensorFlow 1.2.1'i desteklemek için Docker konteynerini yeniden oluşturdum; Ayrıca CPU için TensorFlow kütüphanesini kurmak için bir CPU sürümü konteyneri oluşturdum.

CPU kullanırken, modeli TensorFlow'da kurmak ve eğitmek için pip kullanırsanız, konsolda şu uyarıyı görürsünüz:

Bu uyarıları gidermek ve SSE4.2 / AVX / FMA'yı optimize etmek için TensorFlow'u kaynak kodundan derledik ve üçüncü bir Docker konteyneri oluşturduk. Modeli yeni kapta eğitirken, uyarıların çoğu artık görünmez ve eğitim hızını artırır.

Bu şekilde, Google Cloud Engine'i üç ana durumu test etmeye başlamak için kullanabiliriz:

  • Tesla K80 GPU örneği

  • TensorFlow'un pip aracılığıyla yüklendiği 64 Skylake vCPU örneği ve 8/16/32 vCPU testi

  • TensorFlow'un CPU talimat derlemesini (cmp) ve 8/16/32 vCPU testlerini kullandığı 65 Skylake vCPU örneği

sonuç olarak

Her model mimarisi ve yazılım / donanım yapılandırması için aşağıdaki sonuçlar, karşılaştırma ve dönüştürme için bir kıyaslama olarak GPU bulut sunucusu eğitim süresini kullanır çünkü her durumda, GPU en hızlı eğitim çözümü olmalıdır.

Başlayalım MNIST el yazısı rakamlı veri seti + genel çok katmanlı algılayıcı (MLP) mimarisi Başlamak için yoğun, tamamen bağlı bir katman kullanın. Ne kadar az eğitim süresi o kadar iyidir. Yatay noktalı çizgi, GPU'nun performansıdır ve yukarıdaki noktalı çizgi, GPU'dan daha kötü performansı temsil eder.

Bu testte GPU, tüm platform yapılandırmaları arasında en hızlısıdır. Buna ek olarak, 32 vCPU ve 64 vCPU arasındaki performansın çok benzer olduğunu buldum Derlenen TensorFlow kitaplığı gerçekten eğitim hızını büyük ölçüde artırabilir, ancak yalnızca 8 ve 16 vCPU durumunda. Belki de vCPU'lar arasındaki koordinasyon ve iletişim maliyeti, daha fazla vCPU'nun performans avantajlarını dengeler; belki de bu maliyetler TensorFlow'u derlemek için kullanılan CPU talimatlarından farklıdır.

Farklı vCPU numaralarının eğitim hızları arasındaki fark küçük olduğundan, sayının azaltılmasının maliyet avantajları getirebileceği kesindir. GCE bulut sunucusunun maliyeti orantılı olarak paylaşıldığından (bu, Amazon EC2'den farklıdır), maliyet daha kolay hesaplanabilir.

Yukarıdaki şekilde gösterildiği gibi, bu sorun için CPU sayısını azaltmak daha uygun maliyetli.

Daha sonra, aynı veri setini kullanıyoruz Evrişimli Sinir Ağı (CNN) Dijital sınıflandırma gerçekleştirin:

CNN'de, GPU'nun hızı CPU'nun iki katından fazladır ve maliyet verimliliği açısından 64 vCPU, GPU'dan bile daha yüksektir ve 64 vCPU'nun eğitim süresi 32 vCPU'dan daha uzundur.

Devam edin, CIFAR-10 görüntü sınıflandırma veri setine dayalı olarak CNN yönünde bir adım daha ilerideyiz. Derin kovboy + çok katmanlı algılayıcı Bir görüntü sınıflandırıcı modeli oluşturun (VGG-16 mimarisine benzer).

Durum basit CNN testine benzer, ancak bu durumda, derlenmiş TensorFlow kitaplığını kullanan tüm CPU'lar daha iyi performans gösterir.

Sonraki, IMDb yorum veritabanında yorumların olumlu mu olumsuz mu olduğunu ayırt etmek için kullanılan hızlı metin algoritmasıdır.Metin sınıflandırma alanında diğer yöntemlerden daha hızlıdır.

Bu bağlantıda GPU, CPU'dan çok daha hızlıdır. Az sayıda CPU yapılandırması çok avantaj sağlamaz.Resmi fasttext uygulamasının çok sayıda CPU kullanan ve paralel işlemeyi iyi gerçekleştirebilen bir tasarım olarak kabul edildiğini bilmek önemlidir.

Çift yönlü uzun kısa süreli bellek (LSTM) mimarisi IMDb yorumları gibi metin verilerini işlemek için çok kullanışlıdır, ancak önceki test makalemde bir Hacker News yorumu, TensorFlow'un GPU'da LSTM'nin verimsiz bir uygulamasını kullandığına işaret etti, bu nedenle belki de fark daha önemli olacaktır.

Bir dakika ne? Çift yönlü LSTM için GPU eğitimi, herhangi bir CPU yapılandırmasından iki kat daha mı yavaş? Vay canına (adil olmak gerekirse, kıyaslama Keras LSTM'nin varsayılan uygulamasını kullanır = 0, bu CPU için daha iyidir; ve GPU'da uygulama = 2 daha iyidir, ancak bu kadar büyük bir farka neden olmamalıdır)

Sonunda, LSTM metin oluşturma Nietzsche'nin çalışması diğer testlere benzer, ancak GPU'ya ciddi bir darbe indirmedi.

sonuç olarak

64 vCPU kullanmanın derin öğrenmeye elverişli olmadığı ortaya çıktı, çünkü mevcut yazılım / donanım mimarisi bu kadar çok işlemciyi tam olarak kullanamıyor ve etki genellikle 32 vCPU ile aynı (veya daha da kötü).

Hem eğitim hızı hem de maliyeti göz önüne alındığında, 16 vCPU ile derlenen TensorFlow eğitim modeli kazanan gibi görünüyor. Derlenen TensorFlow kitaplığı,% 30-% 40 performans artışı sağlayabilir. Bu fark göz önüne alındığında Google'ın bu CPU hızlandırma özellikleriyle TensorFlow'un önceden derlenmiş bir sürümünü sunmaması şaşırtıcıdır.

Burada belirtilen maliyet avantajı, yalnızca Google Cloud Öncelikli örnekleri kullanıldığında anlamlıdır. Google Compute Engine'deki yüksek CPU örnekleri 5 kat daha pahalıdır ve bu da maliyet avantajını tamamen ortadan kaldırabilir. Yaşasın ölçek ekonomileri!

Bulut CPU eğitimini kullanmanın temel dayanaklarından biri, eğitimli bir modele acilen ihtiyaç duymamanızdır. Profesyonel durumlarda, zaman en pahalı maliyet olabilir; bireysel kullanıcılar için, modelin bir gecede eğitilmesine izin vermek hiçbir şey değildir ve çok, çok uygun maliyetli bir seçimdir.

Bu test için tüm komut dosyaları GitHub'da şu adreste bulunabilir:

https://github.com/minimaxir/deep-learning-cpu-gpu-benchmark

Günlüğü işlemek için kullanılan R / ggplot2 kodunu ve bu test hakkında daha ayrıntılı veriler içeren R Defterindeki görsel ekranı da görüntüleyebilirsiniz. adres:

Bitiş

Bir uyarı

Beş grup kübit okuyucu başvuruya açıktır.Yapay zeka ile ilgilenen arkadaşlar, kübit asistanının WeChat qbitbot2'sini ekleyebilir, gruba katılmak için başvurabilir ve yapay zekayı birlikte tartışabilir.

Ayrıca, qubit ustaları tarafından bir araya getirilen otonom sürüş teknolojisi grubu, Yalnızca otonom sürüşle ilgili alanlarda çalışan öğrencileri veya öncü mühendisleri kabul edin . Uygulama yöntemi: qbitbot2'yi arkadaş olarak ekleyin, not " Otopilot "Katılmak için başvurun ~

İşe Alım

Qubit'ler işe alıyor muhabiri düzenlemek Pozisyonları bekliyorum, Pekin, Zhongguancun'da çalışıyor. İlgili ayrıntılar için lütfen şu yanıtı verin: resmi hesabın diyalog arayüzünde "İşe Alım".

Da Kui acınacak bir şekilde hastalıktan iyileşiyor.Carla tatilde eve dönemiyor. Shuster bu kadeh şarapta biraz acı mı?
önceki
Chery, orijinal beklentilerini unutmadı. 8 inç geniş ekranlı, ESC ve lastik basıncı izleme özellikli otomatik SUV'lerin sayısı 60.000'den az.
Sonraki
Play-off'lardan en uzun ardı ardına devamsızlık yapan beş takım, Suns kaybetti, ancak Warriors utanç içinde listeyi yaptı.
Wu Lei neyi bekliyor? İlk olarak 18 yılda bir öğretmen tarafından kucaklandı! Bu 2 noktaya ulaşmamak yıldız sayılmaz
Derin Öğrenme Evrimi Chronicle (1943-2016)
Mart "Manzarası" sonsuz derecede iyidir "Rüzgar hayranları" sizi bahar kirazının tadını çıkarmaya götürür
Kralın ihtişamının en sefil kahramanı, çok güçlü olduğu için Tianmei tarafından hedef alındı! Suikastçı düşmanından kanalizasyon mu istiyorsun?
Warriors kasıtlı olarak mı kaybeder? Yang Yi, Cole'un satranç oynadığını düşünüyor, bu 4 anormal detay sorunu açıklayabilir
Diğerleri ödülü hızlı yürüyüş için kabul etti, ancak o koltuk değnekleriyle sahne aldı! Çok hatlı savaş kullanımı Süper Lig'deki en iyi yeni oyuncuyu terk mi ediyor?
Hongqi H5 yerli otomobilindeki "lüks asilzade"
15 yıl daha yanıyor olacak! Fantasy Westward Journey yeni bir dövüş sanatını ortaya çıkardı, oyuncu patladı: imza becerileri çok güçlü
Harden yaralandı, Rockets dört büyük fayda sağladı, yeni Ariza buldu, rekor artık önemli değil!
Li Xiaopeng ilk önce küçük bir not aldı ve Shandong lehçesindeki ifadesini ifade etti, bu da Schmidt'in ayağa kalkmasını ve teşekkür etmesini sağladı.
League of Legends'ın en sefil tanrıçası, Planck tarafından alındı ve intikam yoluna çıktı.
To Top