Bilgisayarımın kullanabileceği FLOP miktarını belirleme


15

Bilgisayarımın yapabileceği FLOP'ların (Kayan Nokta İşlemleri) teorik sayısını belirlemek istiyorum. Birisi bana bu konuda yardımcı olabilir mi? (Aralarındaki fark hakkında fikir edinmek için bilgisayarımı bazı süper bilgisayarlarla karşılaştırmak istiyorum)

Yanıtlar:


9

FLOP / s ile verilen teorik zirve: odak sayısının kolaydır. Ortalama frekans, teorik olarak, bir miktar Turbo Boost (Intel) veya Turbo Core (AMD) içermelidir, ancak çalışma frekansı iyi bir alt sınırdır. Çevrim başına işlemler mimariye bağlıdır ve bulmak zor olabilir (SandyBridge ve IvyBridge için 8, bkz. Slayt 26 ). Bir dizi modern mimarinin sayılarını içeren bu yığın taşması sorusunun konusudur .

Çekirdek sayısı*Ortalama sıklık*Çevrim başına işlem

1
Tamam, 2 çekirdeğim var, Çalışma Frekansı: 1.8 GHz, Intel Turbo Boost Teknolojisi: 3.00 Ghz, döngü başına işlemleri bulamıyorum, işte web sitesi: ark.intel.com/products/75460/… teşekkürler
Ol 'Güvenilir

Haswell 16 DP / döngü yapabilir. Cevap gövdesine SO cevabına bir link ekledim.
Max Hutchinson

Bu, bilgisayarımın yapabileceği anlamına mı geliyor: 2 x 3.000.000.000 Hz x 16 = 96 Giga FLOP?
Ol 'güvenilir

Gerçek ortalama frekansa bağlı olarak 2 * 1.8 GHz * 16 DP = 57.6 GFLOP / s ve 96 GFLOP / s arasında olabileceği anlamına gelir. Tek bir sayı kullanmanız gerekiyorsa, 57.6 daha adil olan IMO'dur.
Max Hutchinson

2
FLOP oranları genellikle bir işlemcinin 'iyiliğinin' zayıf bir ölçüsüdür. Örneğin, bkz. Scicomp.stackexchange.com/questions/114/… . Görevinizin sınırlayıcı maliyetleri hakkında düşünmek isteyebilirsiniz (örn. İşlem bağlı ve disk bağlı bellek bağlı) ve ilgili donanıma (hesaplama sistemi, bellek sistemi, G / Ç) odaklanmak isteyebilirsiniz.
Max Hutchinson

4

Makinenizdeki CPU'ların modelini ve satıcısını bilmeniz gerekir. Bunu yaptıktan sonra, satıcının web sitesinde (veya belki Wikipedia'da) saat hızını, yonga / soket sayısını, yonga başına çekirdek sayısını, döngü başına kayan nokta işlemi sayısını ve bu işlemlerin vektör genişliğini arayabilirsiniz. . Sonra, sadece çarparsınız.

Örneğin, çalıştığım Stampede'deki Intel Xeon E5-2680 "Sandy Bridge" işlemcilerini ele alalım . Özellikleri:

  • 2,7 GHz
  • 2 yonga / düğüm, 8 çekirdek / yonga
  • 2 vektör talimatı / çevrim
  • 256 bit geniş AVX talimatları (4 eşzamanlı çift duyarlıklı işlenen)

Bunların çoğaltılması, sistemin hızlandırılmamış kısmı için 345.6 GF / düğüm veya 2.2 PF verir.

Genellikle çift kesinlikli (64 bit) işlemler açısından düşünürüz, çünkü bu, kullanıcılarımızın büyük çoğunluğu için gereken kesinliktir, ancak isterseniz hesaplamayı tek kesinlikli terimlerle yeniden yapabilirsiniz. Bu genellikle son faktörü değiştirir, örneğin 4 DP Flop / inst yerine 8 SP Flop / talimat, ancak bundan çok farklı olabilir. Örneğin, daha eski GPU'lar DP'yi sadece SP oranının 1 / 8'inde yaptı. Sisteminiz için herhangi bir sayı teklif ederseniz, çift duyarlık değilse hangisini kullandığınız konusunda açık olmalısınız, aksi takdirde insanlar bunun olduğunu varsayar.

Ayrıca, çipiniz kaynaştırılmış çoklu ekle (FMA) talimatlarını destekliyorsa ve bunları tam hızda yapabiliyorsa, çoğu kişi bunu 2 kayan nokta işlemi olarak sayar, ancak bir donanım performans sayacı bunu tek bir talimat olarak sayabilir.

Son olarak, bunu sisteminizde olabilecek herhangi bir hızlandırıcı için (GPU veya Xeon Phi gibi) yapabilir ve teorik bir toplam elde etmek için bu performansı CPU performansına ekleyebilirsiniz.


CPU modelini bilmek yeterli değil, gerçek çalışma frekanslarını bulmak gerekiyor
Aksakal

@Aksakal, teorik bir analiz için, nominal frekansı seçmek muhtemelen tamamdır. Çiplerinizin hangi frekansta çalışacağını bilmek zordur, çünkü bu, iş yükünüze ve klimanızın kalitesine bağlı olabilir.
Bill Barth

2

Teorik değer istediğini anlıyorum, ancak bu neredeyse her zaman herhangi bir gerçek kodla, hatta LINPACK ile erişilemediğinden, çok büyük matrisler için DGEMM'yi çalıştırmak isteyebilirsiniz. Bu yöntemi tercih etmemin nedeni, bazı işlemcilerin teorik zirve flop değerlerine ulaşmalarını engelleyen bazı eksikliklerini ortaya çıkarmasıdır.

Örneğin, NVIDIA GPU'lar şu anda aynı boru hattında tamsayı ve kayan nokta işlemleri yapmaktadır. Bu, teorik zirve flop / s'lerini ancak hiçbir şekilde tamsayı hesaplaması yapamadığınız anlamına gelir . Dizi indeksleme ve diğer herhangi bir veri erişimi bir yerde tamsayı aritmetiği gerektirdiğinden, NVIDIA GPU'da hiçbir kod teorik zirve flop / s'lerine ulaşamaz. Çoğu durumda, üst sınır olarak ~% 80 görülür. Aynı anda tamsayı ve kayan nokta işlemleri yayınlayan CPU'lar için bu bir sorun değildir.

Intel Knights Corner ve Blue Gene / Q gibi bazı GPU benzeri çok çekirdekli işlemcilerde, benzer boru hattı sorunları için geleneksel CPU'lardan daha yüksek pik flop / s elde etmek daha zordur (her ikisi de en azından büyük DGEMM'de en az ~% 90 pik elde edebilir ).


NVIDIA GPU'da neden hiçbir kod teorik zirve flop / lar elde edemez?
skytree

2. paragrafa bakınız. Ancak, bunların hepsi eski mimarilerle ilgilidir. Daha yeni NVIDIA mimarileri aynı anda tamsayı ve kayan nokta uygulayabilir ve büyük DGEMM'de% 90'dan fazla pik elde edebilir.
Jeff
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.