gpt4 book ai didi

windows - 使用 LLVM/Clang 在 Win10 上使用 OpenMP 的 Cuda

转载 作者:可可西里 更新时间:2023-11-01 10:15:22 34 4
gpt4 key购买 nike

我一直在尝试让一个简单的应用程序在 Win10 上运行,该应用程序使用 Cuda、OpenMP 和 LLVM/Clang。从我在网上找到的各种文档来源和 powerpoint 演示文稿,我相信此功能以某种方式受到支持,但我不确定它是否在 Win10 上受支持以及它是否在主版本中。我正在使用 LLVM 4.0.0rc1。在以各种方式从 head 成功构建失败后,我下载了二进制文件。

我修改了这个code看起来像下面这样。我还试验过它的各种 OMP 和 C 变体。它编译得很好。从verbose output可以看出,构建似乎正在制作一个胖二进制文件。有趣的是,它似乎不太关心我为目标赋予什么(或者如果我给它一个目标)或者 omptargets 中具体是什么。它还将执行由 nvprof 报告的 cuda 函数。

当我运行它时,根据 Open Hardware Monitor,我的所有四个处理器都达到 100% 使用率,但 GPU 上什么也没有发生,除了分析命令可能使用了少量内存。我是不是遗漏了什么,或者这根本行不通?

cudaError_t f;
int t = 999;
cudaProfilerStart();

printf("Enter\n");
#pragma omp target data map(tofrom: x[0:n],y[0:n]) map(tofrom: t,f)
{
f = cudaGetDevice(&t);
#pragma omp target teams num_teams(10) thread_limit(192)
#pragma omp parallel for
for (int i = 0; i < n; i++) {
for(int j = 0; j < 10000; j++) {
y[i] += a * x[i];
y[i] *= 2;
y[i] -= x[i]/4;
y[i] *= .99;
}
}
}
cudaProfilerStop();

nvprof 上的输出:

==1844== NVPROF is profiling process 1844, command: example.exe 1000000
Enter
min = inf, max = inf, avg = 0.000000 0 0
==1844== Profiling application: example.exe 1000000
==1844== Profiling result:
No kernels were profiled.

==1844== API calls:
Time(%) Time Calls Avg Min Max Name
98.86% 135.83ms 1 135.83ms 135.83ms 135.83ms cudaProfilerStart
0.60% 819.35us 91 9.0030us 0ns 398.73us cuDeviceGetAttribute
0.53% 726.09us 1 726.09us 726.09us 726.09us cuDeviceGetName
0.00% 5.2860us 1 5.2860us 5.2860us 5.2860us cuDeviceTotalMem
0.00% 4.5310us 1 4.5310us 4.5310us 4.5310us cudaGetDevice
0.00% 2.6430us 3 881ns 0ns 2.2650us cuDeviceGetCount
0.00% 1.5090us 3 503ns 377ns 755ns cuDeviceGet

最佳答案

我与 IBM 的一位工程师交换了电子邮件。上游 fork of LLVM/Clang仍在进行中。也支持 x86,但它是否适用于 Windows 尚不清楚。

如果您在我的 parallel-computing.pro 链接中注意到,有一个支持 OpenMP 和 Cuda 的较旧的分支。我不确定这些项目之间的关系是什么(如果有的话)。如果你看一下最近的presentation ,很明显,较新的 fork 支持 OpenMP 4.0 并支持 4.5,并且 IBM 正在为支持其 Power8 CPU 做出贡献。这部分解释了对 Windows 的不确定支持。然而,我在 github 中搜索了代码,并注意到定义了 Win32 和 Win64 宏。

关于windows - 使用 LLVM/Clang 在 Win10 上使用 OpenMP 的 Cuda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42143776/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com