如何检查 OpenACC 是否在我的计算机上运行?

How can I check if OpenACC works on my computer?

我知道 GCC 6.x 有不错的 OpenACC 支持。但我想确定它是否能在我的电脑上正常运行。我试过了

#include <stdio.h>
#include <openacc.h>

int main(int argc, char *argv[])
{
    acc_device_t dev = acc_get_device_type();
    int num = acc_get_device_num(dev);
    printf("%d\n", num);
    return 0;
}

这会打印 0。我做错什么了吗?或者是否有其他方法可以验证 OpenACC 在我的计算机上是否正常工作?

我有什么办法可以查明 OpenACC 在并行区域中将使用哪些设备?

您应该将其更改为调用 acc_get_num_devices(dev);。现在你问的是总是从 0 开始的 "which device am I using?",而不是 "how many devices do I have?"