2010-03-23 43 views
7

GCC'nin Intel'in ICC'den optimizasyon seviyeleri ve belirli işlemci mimarisine göre farklılığından nasıl ayrıldığını bilmek istiyorum. Linux için GCC 4.1.2 20070626 ve ICC v11.1 kullanıyorum.ICC vs GCC - Optimizasyon ve CPU mimarisi

ICC'nin optimizasyon seviyeleri (O1 ila O3), eğer farklı olsalar bile GCC'den nasıl farklıdır? ICC, özellikle farklı mimarilere (IA-32, intel64 ve IA-64) hizmet verebilmektedir. GCC'nin benzer olduğunu düşündüğüm bir derleyici seçeneği olduğunu okudum, ancak kullanılabilecek seçeneklerin listesini bulamıyorum. 64 bit Intel Xeon X5570 kullanıyorum. Uygulamalarımı 64 bit Intel CPU'ları için kullanacak başka bir GCC derleyici seçeneği var mı?

Teşekkür ederiz.

Selamlar, Rayne

cevap

1

bakın bu mimarileri (IA-64 Itanium olduğunu ve bir tane var düşüktür için geçerli olan tüm seçeneklerin tam listesi ve tanımları için GCC kılavuzda, ie386 and x86-64 Options bölümüne 3.17.15 Bunların).

bu bağlamda en önemli seçeneklerden

şunlardır:

  • -m64 64-bit kodu oluşturun;
  • -march= Belirli bir CPU tipi için talimatlar üretin; ve belirli bir CPU tipi için kodu ayarlayın.
-1

ayar seçeneklerini, kod sökmeye ve fark

+0

çok kullanışlı bir yanıt değil, çünkü bu sadece sahip olduğu kod için geçerli olacak ve gelecekte yazabileceği koda uygulanmayacaktır. –

+2

ve mevcut olmayan kodun GCC veya ICC iyileştiricisinin etkinliğini nasıl ölçüyorsunuz? –

1

ICC -O2 -unroll2 bkz -O3 -ffast-matematik -fno-cx-sınırlı menzilli -funroll-döngüler gcc eşdeğerdir - param max-unroll-times = 2 -O1, derleyici için simd otomatik vektörleştirmeyi etkinleştirmez, bu nedenle daha az fark vardır. Hem icc hem de gcc, 64 bit modu hedeflemek için ayrı olarak oluşturulmuş derleyiciler sağlar; Eğer her iki gcc derleyicisi kurulursa, -m64 ile ilgili tavsiye desteklenecektir. icc, her ikisi de kuruluysa, kendi yol düzenleme komut dosyalarını kullanarak seçim yapmanızı bekler. -march = native, yapı makinesinin tüm komut setini kullanmak için gcc seçeneğidir. icc bunu gözlemleyebilir ancak eşdeğer bir seçeneğe sahiptir -xHost. Bu sorunun zamanında, icc seçeneği sadece Intel CPU'lar için çalışmış olabilir.

İlgili konular