gpt4 book ai didi

c++ - 编译 Cuda 时出错 - 预期的主表达式

转载 作者:可可西里 更新时间:2023-11-01 15:47:56 25 4
gpt4 key购买 nike

这个程序似乎没问题,但我仍然遇到错误,有什么建议吗?

程序:

#include "dot.h"
#include <cuda.h>
#include <cuda_runtime.h>
#include <stdio.h>

int main(int argc, char** argv)
{
int *a, *b, *c;
int *dev_a, *dev_b, *dev_c;
int size = N * sizeof(int);

cudaMalloc((void**)&dev_a, size);
cudaMalloc((void**)&dev_b, size);
cudaMalloc((void**)&dev_c, sizeof(int));

a = (int *)malloc (size);
b = (int *)malloc (size);
c = (int *)malloc (sizeof(int));

random_ints(a, N);
random_ints(b, N);

cudaMemcpy(dev_a, a, size, cudaMemcpyHostToDevice);
cudaMemcpy(dev_b, b, size, cudaMemcpyHostToDevice);

int res = N/THREADS_PER_BLOCK;
dot<<< res, THREADS_PER_BLOCK >>> (dev_a, dev_b, dev_c);
//helloWorld<<< dimGrid, dimBlock >>>(d_str);

cudaMemcpy (c, dev_c, sizeof(int), cudaMemcpyDeviceToHost);

free(a); free(b); free(c);
cudaFree(dev_a);
cudaFree(dev_b);
cudaFree(dev_c);
return 0;
}

错误:

DotProductCuda.cpp:27: error: expected primary-expression before '<' token
DotProductCuda.cpp:27: error: expected primary-expression before '>' token

最佳答案

<<< >>>调用内核的语法不是标准的 C 或 C++。这些调用必须在 NVCC 编译器编译的文件中。这些文件通常以 .cu 扩展名命名。对 CUDA 的其他 API 调用,例如 cudaMalloc可以在常规的 .c 或 .cpp 文件中。

关于c++ - 编译 Cuda 时出错 - 预期的主表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5986070/

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