Changes between Version 19 and Version 20 of CALプログラミング(4)
- Timestamp:
- Mar 22, 2009 1:30:23 PM (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
CALプログラミング(4)
v19 v20 34 34 }}} 35 35 36 こうする理由は、"calResAllocLocal1D"により1次元のメモリとして確保した場合、その次元の最大値は8192までという制限があるためである。よって、上のILプログラムの場合には、1粒子のデータとして4要素のfloatと変数を使っているので、1次元メモリで単純にN体計算を実装すると8192粒子までの粒子しか扱うことができない。これでは実用的な価値がなく、実際にベンチマークテストをしてみると、この粒子数ではRV770の性能を引き出すことができない。 36 nxとnyはそれぞれ、配列の添字の最大値を指定している。nxが最低次元である。よって、このAPIによりinputResで指定されるメモリ領域は"inputRes[ny][nx]"の大きさをもつ2次元配列データとなる。フォーマットとして、CAL_FORMAT_FLOAT_4を指定しているため、このデータは単精度浮動小数点であり、4つの要素を持つ。具体的には"float inputRes[ny][nx][4]"のような3次元の配列と同等である。ただし、実際のメモリ配列については連続しているとは限らない、下記参照。 37 38 こうする理由は、"calResAllocLocal1D"により1次元のメモリとして確保した場合、その次元の最大値は8192までという制限があるためである。よって、上のILプログラムの場合には、1粒子のデータとして4要素のfloat変数を使っているので、1次元メモリで単純にN体計算を実装すると8192粒子までの粒子しか扱うことができない。これでは実用的な価値がなく、実際にベンチマークテストをしてみると、この粒子数ではRV770の性能を引き出すことができない。 37 39 38 40 = 2次元配列 =