トップページ > プログラム > 2014年03月16日 > G/OYWqJl

書き込み順位&時間帯一覧

48 位/222 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000002002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
973
C、C++の最適化について語るスレ 3

書き込みレス一覧

C、C++の最適化について語るスレ 3
973 :デフォルトの名無しさん[sage]:2014/03/16(日) 21:54:49.99 ID:G/OYWqJl
>>965の問題はICCだとこんな方法が使える?

http://www.isus.jp/article/compileroptimization/avx_part3/
>__assume() を使うことによりコンパイラーの最適化に有用な情報を伝えることが可能です。
>以下の例では変数 num1 が 8 の倍数である(具体的な値は問わない)と指示することで、
>b[0], b[0+num1], b[0-num1] が同じ 32 バイト境界のアドレスにあることがコンパイラーに伝わります。
>void foo(float *restrict a, float *b, int n, int num1){
> int i;
> __assume_aligned(a, 32);
> __assume_aligned(b, 32);
> __assume(num1%8==0);
> for (i=0; i<n; i++){
> a[i] += b[i]+b[i+num1]+b[i-num1];
> }
>}
C、C++の最適化について語るスレ 3
974 :973[sage]:2014/03/16(日) 21:59:05.60 ID:G/OYWqJl
何言ってるんだか。
コンパイラへの指示で、使い方の制約じゃないから関係ないや。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。