5
NVCCはどのようにデバイスコードを最適化しますか?定数フォールディングや共通部分式削除のような最適化は何ですか?これにコードの最適化でNVCCはどれくらい効果がありますか?
float a = 1/sqrtf(2 * M_PI);
float b = c/sqrtf(2 * M_PI);
:
例えば、それは次のように削減されます
float a = 1/sqrtf(c * M_PI);
float b = c/sqrtf(M_PI);
へ:
float sqrt_2pi = sqrtf(2 * M_PI); // Compile time constant
float a = 1/sqrt_2pi;
float b = c/sqrt_2pi;
何数学関数の意味を知って含む、より巧妙な最適化に関するこれは:
float sqrt_pi = sqrtf(M_PI); // Compile time constant
float a = 1/(sqrt_pi * sqrtf(c));
float b = c/sqrt_pi;
だから、*折りたたんでいますか?そして、どのコンパイラがnvOpen64ですか?それはNVidiaかOSS版ですか? 2番目のケースはどうですか? –
nvOpen64は、[Open64](http://www.open64.net/)(nvccはコンパイラではありません)に基づいたNVIDIAコンパイラです。 – talonmies
私の無知ですが、コンパイラでなければnvccとは何ですか? –