■
C++ Amp のindexクラスについて、の簡単明瞭サンプル。
#include
using namespace concurrency;void test1()
{
std::vectordata(10);
for (int count = 0; count < 5; count++)
{
data[count] = count; // 0,1,2,3,4
}
concurrency::arraya(2,5, data.begin(), data.end()); // 2x5
parallel_for_each(
a.extent,
[=, &a](index<2> idx) restrict(amp) // 2 is two dimension.
{
int x = idx[0]; // 0-1 (2)
int y = idx[1]; // 0-4 (5)
UINT sum = 0;for( auto i = 0; i <= y; i++ )
sum += a[ index<2>(0,i) ]; // sum input valuea[ index<2>(1,y) ] = sum;
}
);data = a;
for (int i = 0; i < 10; i++)
{
std::cout << data[i] << "\n"; // 0,1,2,3,4,0,1,3,6,10
}
}