当前位置:   article > 正文

并行计算——C++ AMP(2)_vc amp 并行编程

vc amp 并行编程

以下是在Visual Studio 2013下测试的AMP加速代码:转自:Wikipedia

  1. #include <amp.h> // C++ AMP 头文件
  2. #include <iostream>
  3. using namespace concurrency; //C++ AMP 命名空间
  4. const int size = 5; // 定义数组大小
  5. void TestCPPAMP() {
  6. int aCPU[] = { 1, 1, 1, 1, 1 };
  7. int bCPU[] = { 3, 3, 3, 3, 3 };
  8. int cCPU[size];
  9. // 定义C++ AMP封装对象
  10. array_view<const int, 1> a(size, aCPU); //a是aCPU在并行计算硬件(显卡)上的拷贝
  11. array_view<const int, 1> b(size, bCPU);
  12. array_view<int, 1> c(size, cCPU);
  13. parallel_for_each( // C++ AMP 并行代码
  14. c.extent, // 定义并行计算的大小
  15. [=](index<1> idx) // [=]是lambda函数中的捕捉从句,index是数组下标
  16. restrict(amp) // 通知编译器此处为C++ AMP代码
  17. {
  18. c[idx] = a[idx] + b[idx];
  19. }
  20. );
  21. // 打印结果
  22. for (int i = 0; i < size; i++) {
  23. std::cout << c[i] << "\n"; // 结果应为 4, 4, 4, 4, 4
  24. }
  25. }
  26. int main(void)
  27. {
  28. TestCPPAMP();
  29. getchar();
  30. return 0;
  31. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/245641
推荐阅读
相关标签
  

闽ICP备14008679号