- 97 名前:デフォルトの名無しさん mailto:sage [2006/02/11(土) 09:08:17 ]
- SIMDで計算したいブロックを高級言語で明示できないかな。
たとえば、C言語風の妄想言語... struct complex_t { float r, i; }; foo() { complex c[4]; VEC( float re : [ c[0].r, c[1].r, c[2].r, c[3].r ], float im : [ c[0].i, c[1].i, c[2].i, c[3].i ] ) { float t = re * re - im * im; im = 2 * re * im; re = t; } とか書くと、VECブロックの中が自動的にSIMD命令で構成される。 ( SIMD未対応のCPU向けのときは、通常の命令になる ) SIMDで実行するのだから、VECブロック中には分岐はかけず、 ループも固定回数ループだけ。 どう?この妄想言語。
|

|