CPUフロップをテストするためにCPUで実行されたようにMakeFile Cudaを作成する方法は?
質問
私はGPUとCPUのフロップを数えようとしています、そして私はからのソースを持っています ここ
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でテストすることを知りません、私は読んだ これ ソースはCPUで実行できると言っています。
では、修正されたMakeFileがどのようにそれを行うのですか?
解決
ねえ、問題は、x86://www.prnewswire.com/news-releases/pgi-to-develop-compilerベースのnvidia-cuda-cuda-cuda-cuda-cuda-cuda-cuda-cuda-cuda-cuda-cuda-cuda-cuda-cuda-cuda-cuda-cuda-cuda-cuda-cuda-cuda-cuda-cuda-cuda-cuda-cudaでコードを実行するためにポートランドグループコンパイラが必要なことです。 -architecture-for-x86-platforms-103457159.html
さらに、その記事によると、コンパイラは2010年11月13〜15日に実証されているため、いつ公開されるかわかりません(おそらくベータ版が浮かんでいます)。 (すなわち、X86でネイティブにCUDAを実行することはできません)。
今のところ最も簡単なことは、そのベンチマークが実行することを正確に実行するC/C ++関数を書くことです(ポートが非常に簡単なはずです)。 SDKには、CPUをGPUと比較するCUDAの例がいくつかあります(マトリックスの乗算を見てください)ので、最初に試してみてください(基本的には、「実際の世界」ケースを除くベンチマークコードとまったく同じことをする必要があります) GPU/CPUのパフォーマンスをしたいだけです。
さらに簡単:Nvidiaフォーラムにグラフィックカードについて尋ねてください - 彼らはGPU対CPUのパフォーマンスをみんなに伝えるのが大好きです(「私はX GPUを持っていて、Y GFLOPSを手に入れます - 他の誰もがGPU対CPUを手に入れますか?」)。