本文主要是介绍Mac中用clang++和nvcc编译cuda程序的一个例子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
主函数在main.cpp中,用clang++编译,cuda函数放在KernelWrapper.cu中,用nvcc编译。另外main.cpp中需要包含头文件KernelWrapper.h
KernelWrapper.h
#ifndef _KernelWrapper_h
#define _KernelWrapper_hvoid RunTest();
#endif
KernelWrapper.cu
#include <stdio.h>
#include "KernelWrapper.h"
__global__ void TestDevice(int *deviceArray)
{
int idx = blockIdx.x*blockDim.x + threadIdx.x;
deviceArray[idx] = deviceArray[idx]*deviceArray[idx];
}
void RunTest()
{
int* hostArray;
int* deviceArray;
const int arrayLength = 16;
const unsigned int memSize = sizeof(int) * arrayLength;
hostArray = (int*)malloc(memSize);
cudaMalloc((void**) &deviceArray, memSize);
printf("Init Data\n");
for(int i=0;i<arrayLength;i++)
{
hostArray[i] = i+1;
printf("%d\n", hostArray[i]);
}
cud
这篇关于Mac中用clang++和nvcc编译cuda程序的一个例子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!