问题描述
我正在尝试在 Visual Studio 2019 中使用 Microsoft 的 AMP(加速大规模并行)库,但在使用 x64 模式时无法运行我的代码。
一切都可以正确编译,但是每当我在程序运行时尝试在 x64 模式下使用 AMP 并行执行任何操作时都会出现内存错误,但我需要能够使用 x64 模式,因为 x86 只允许 2GB要使用的系统内存,而我正在从事的项目需要的不止这些。
有什么办法可以解决这个问题,还是只是软件本身的缺陷?
如果有帮助,我使用的是 AMD Ryzen 9 3950x 和 NVIDIA GeForce RTX 2080
============== 编辑 ==============
#include <iostream>
#include <amp.h>
using namespace concurrency;
int main()
{
std::cout << "Hello World!\n";
int a[3] = {1,2,3};
int b[3] = {4,5,6};
int c[3] = {0,0};
array_view<const int,1> arrayA(3,a);
array_view<const int,1> arrayB(3,b);
array_view<int,1> arrayC(3,c);
parallel_for_each(arrayC.extent,[=](index<1> idx) restrict(amp)
{
arrayC(idx[0]) = arrayA(idx[0]) + arrayB(idx[0]);
});
arrayC.synchronize();
for (int i : c)
std::cout << i << ",";
std::cout << "\n";
}
它可以编译,但是当它在 x64 模式下运行时,它会抛出这个错误:
Exception thrown at 0x00007FF89B2A43D5 (vcamp140d.dll) in UselessApp.exe:
0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF.
错误的确切位置在 1058
中的 amprt.h
行
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)