SORU
26 NİSAN 2009, Pazar


Neden montaj programı mı?

Tüm hardcore düşük düzeyde hackerlar için bir sorum var. Bir blog bu cümle karşılaştım. Ortak bir açıklama gibi görünüyor, çünkü gerçekten kaynak önemli olduğunu sanmıyorum (Eğer gerçekten önemsiyorsan Haack).

Örneğin, 3-D birçok modern Oyunları yüksek performans onların temel motor C ve Assembly ile yazılmış.

Bildiğim kadarıyla montaj gider - kod yazılı derleme çünkü istemediğin bir derleyici yayan ekstra talimatları kullanarak veya aşırı bayt veya kullanıyorsunuz daha iyi algoritmalar edemezsin express C (veya olmaz olmaksızın derleyici mussing onları)?

Ben önemli düşük seviyeli şeyler bunu anlamak tamamen. Ben sadece anlamak istiyorumnedensonra derleme programı anlıyorum.

CEVAP
26 NİSAN 2009, Pazar


Bu ifade yanlış yorumluyorsun bence

Örneğin, 3-D birçok modern Oyunları yüksek performans onların temel motor C ve Assembly ile yazılmış.

Oyun değil "makine dili ile yazılmış," onlar da aynı şekilde "C" yazılı. Bu blog oyunun önemli bir kısmını derleme olarak tasarlanmıştır, ya da programcı ekip oturup kendi ana dili Meclis gelişmesi demek değildir.

Bu negerçektendemek geliştiricileri ilk oyun yazma ve C olsun . Sonra bu profil, bu sorunları çözmem ve eğer değerli ise mecliste onları heck optimize edin. Ya da, eğer zaten onlar daha tecrübeli, darboğazları edilecek biliyorlar, ve optimize edilmiş parça etrafında inşa ettiler diğer oyunlardan oturan var.

noktaderleme program, her zaman olduğu gibi aynıhız. Bir yazmak saçma olurduçokçevirici kod, ama derleyici farkında değil bazı iyileştirmeler var, ve kod küçük bir pencere, bir insan daha iyi yapmak için gidiyor.

Kayan nokta için örneğin, Compiler oldukça muhafazakar olma eğilimindedir ve mimarisi daha gelişmiş özelliklerinden bazıları farkında olmayabilir. Eğer kabul etmeye razı bazı hata, genellikle daha iyi bir derleyici ve bu değer yazı biraz kod derleme eğer sen bulmak o çok zaman geçirdim.

Burada daha fazla ilgili bazı örnekler:

Oyunlarından örnekler

  • Article from Intel oyun motoru SSE ön tanımlı kullanarak en iyi duruma getirme hakkında. Son kodu ön tanımlı (satır içi çevirici değil) kullanır, saf Meclisi miktarı çok düşük. Ancak derleyici tarafından çevirici çıkış optimize etmek için tam olarak anlamaya bak.

  • Deprem fast inverse square root. Yine rutin onu çevirici yok, ama optimizasyon bu tarz mimari hakkında bir şeyler bilmek gerekir. Yazarlar işlemleri hızlı (mulitply, shift) ve yavaş hangileri olduğunu (bölme, Karekök). Tamamen yavaş işlemleri önler Karekök çok zor bir uygulama ile geliyor.

Yüksek Performanslı Bilgi İşlem

  • Oyun alanı dışında, bilimsel bilgi işlem, insanları sık sık eşya bok onları hızlı en yeni donanım üzerinde çalıştırmak için optimize. Fizik aldatmazsın oyun gibi düşünün.

    Bu çok yakın bir örnek Lattice Quantum Chromodynamics (Lattice QCD). This paper sorun çok ağır IBM Blue Gene/L bir Power PC 440 için optimize edilmiş olan bir çok küçük sayısal çekirdek, kaynar açıklamaktadır. 440 her iki FPUs ve Derleyiciler sömürmek için zor olan bazı özel üçlü operasyonları destekliyorlar. Bu en iyi duruma getirme olmadan, Kafes dolayısıyla sonuna sorununuzu pahalı makinelerde CPU saat milyonlarca gerektirir zaman pahalı olan çok daha yavaş çalışıyor.

    Eğer merak ediyorsanıznedenbu önemli, bu iş çıktı article in Science onay çıktı. Kafes dolayısıyla sonuna kullanarak, bu adamlar ilk prensiplerden bir protonun kütlesi hesaplanmış ve bu kütlenin güçlü kuvvet, enerji, ve kuarklar da bağlayıcı gelen geçen yıl gösterdi. E=mc2 eylem içinde. Here's a summary.

Yukarıdakilerin hepsi için uygulamalardeğilveya montaj -- 0 bile yakın tasarlanmış yazılı. Ama insanlar gerçekten hız gerektiğinde, belirli bir donanım üzerinde uçmak için kendi kod anahtar bölümlerini yazmaya odaklanın.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FOSDEM

    FOSDEM

    13 Ocak 2009
  • Rhapsody

    Rhapsody

    7 ŞUBAT 2008
  • TROPFEST

    TROPFEST

    27 Mart 2007