並列計算——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; }