次のファイルがあります。
// Main.cpp
#include "kernel_util.cuh"
int main()
{
call_kernel();
}
// kernel_util.cuh
#ifndef KERNEL_UTIL
#define KERNEL_UTIL
#include <cuda_runtime.h>
void call_kernel();
#endif
// kernel_util.cu
#include "kernel_util.cuh"
#include "kernel.curnel"
#define thread 16
void call_kernel() {
dim3 blocks( ( width + thread - 1 ) / thread, ( height + thread - 1 ) / thread );
dim3 threads( thread, thread );
kernel<<<blocks, threads>>>();
}
// kernel.curnel
#ifndef KERNEL
#define KERNEL
#include <cuda_runtime.h>
__global__ void kernel() {
}
#endif
64 ビット コンパイラと CUDA 5.0 ツールキットがインストールされた Visual Studio 2010 を使用しています。上記のコードは正常にコンパイルされますが、行
kernel<<<blocks, threads>>>();
3番目<
は「expected an expression」エラーになりますが、コードは問題なくコンパイルされ、カーネル関数に到達します。
構成プロパティ:
- cpp ファイル項目タイプ c/c++ コンパイラ
- cu ファイル項目タイプ cuda c/c++
- cuh ファイル アイテム タイプはビルドに参加しません
- カーネル ファイル アイテム タイプはビルドに参加しません