如何创建 CUDA makefile 以便在 CPU 中执行以测试 CPU FLOP?

发布于 2024-09-28 19:11:50 字数 1001 浏览 3 评论 0原文

我正在尝试计算 GPU 和 CPU FLOPs,并且我从 此处

我将其重命名为 cudaflops.cu 并使用此 makefile 对其进行编译

################################################################################
#
# Build script for project
#
################################################################################

# Add source files here 
EXECUTABLE  := benchmark
# Cuda source files (compiled with cudacc) 
CUFILES     := cudaflops.cu
# C/C++ source files (compiled with gcc / c++) 
CCFILES     := 


################################################################################
# Rules and targets

include ../../common/common.mk

#########################################

Tt 工作正常并给出结果 367 GFlOPs

但现在,我不知道在 CPU 中测试此源,我阅读了 this 表示源可以运行在CPU上。

那么修改makefile怎么办呢?

I'm trying to count the GPU and CPU FLOPs and I've got the source from here

I renamed it to cudaflops.cu and compiled it with this makefile

################################################################################
#
# Build script for project
#
################################################################################

# Add source files here 
EXECUTABLE  := benchmark
# Cuda source files (compiled with cudacc) 
CUFILES     := cudaflops.cu
# C/C++ source files (compiled with gcc / c++) 
CCFILES     := 


################################################################################
# Rules and targets

include ../../common/common.mk

#########################################

Tt works fine and gives result 367 GFlOPs

But now, I don't know to test this source in CPU, I read this which say that the source could run on CPU.

So how the modified makefile to do it??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只怪假的太真实 2024-10-05 19:11:50

嘿,问题是你需要 portland group 编译器才能在 x86 上运行你的代码:
hxxp://www.prnewswire.com/news-releases/pgi-to-develop-compiler-based-on-nvidia-cuda-c-architecture-for-x86-platforms-103457159.html

另外,该文章表示编译器将于 2010 年 11 月 13 日至 15 日进行演示,因此我不确定何时会公开发布(可能是 beta 版本)。 (即,不,您还不能在 x86 上本地运行 CUDA)。

现在最简单的事情就是编写一个 C/C++ 函数,该函数完全执行该基准测试的功能(它应该非常容易移植)。他们的 SDK 中有一些 CUDA 示例比较了 CPU 和 GPU(我认为是矩阵乘法),所以首先尝试一下(它基本上应该与基准代码执行完全相同的操作,除了“现实世界”的情况)如果你只是想提高 GPU/CPU 性能。

甚至更简单:在 NVIDIA 论坛上询问有关您的显卡的信息 - 他们喜欢告诉每个人他们的 GPU 与 CPU 性能(只需说“我有 x GPU,我得到 y GFLOPS - 其他人得到的 GPU 与 CPU 的结果如何?”)。

Hey so the issue is you need portland group compilers in order to run your code on x86:
hxxp://www.prnewswire.com/news-releases/pgi-to-develop-compiler-based-on-nvidia-cuda-c-architecture-for-x86-platforms-103457159.html

Additionally that article says that the compiler is being demonstrated November 13-15, 2010, so I'm not sure when it will be publicly available (probably a beta version floating around). (I.e. No you can't run CUDA natively on x86 YET).

right now the easiest thing to do is write a C/C++ function that does exactly what that benchmark does (it should be VERY easy to port). There are some CUDA examples in their SDK that compare CPU to GPU (look at matrix multiplication I think), so try that first (it should basically do the exact same thing as the benchmark code, except for a 'real world' case) if you're just looking to do GPU/CPU performance.

Even easier: ask NVIDIA forums about your graphics card - they love to tell everyone their GPU vs CPU performance (just say "I have x GPU and i get y GFLOPS-what does everyone else get GPU vs CPU?").

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文