並列計算——C++AMP(2)
889 ワード
以下はVisual Studio 2013でテストされたAMPアクセラレータコードです:Wikipediaから転送
#include // C++ AMP
#include
using namespace concurrency; //C++ AMP
const int size = 5; //
void TestCPPAMP() {
int aCPU[] = { 1, 1, 1, 1, 1 };
int bCPU[] = { 3, 3, 3, 3, 3 };
int cCPU[size];
// C++ AMP
array_view a(size, aCPU); //a aCPU ( )
array_view b(size, bCPU);
array_view c(size, cCPU);
parallel_for_each( // C++ AMP
c.extent, //
[=](index<1> idx) // [=] lambda ,index
restrict(amp) // C++ AMP
{
c[idx] = a[idx] + b[idx];
}
);
//
for (int i = 0; i < size; i++) {
std::cout << c[i] << "
"; // 4, 4, 4, 4, 4
}
}
int main(void)
{
TestCPPAMP();
getchar();
return 0;
}