gpt4 book ai didi

ubuntu - "don' t know what to do with' nvcc fatal error

转载 作者:太空宇宙 更新时间:2023-11-03 16:50:11 25 4
gpt4 key购买 nike

我在 Ubuntu 的终端中使用命令行。

我正在尝试编译 CUDA_Compiler_Driver_NVCC.pdf 中提供的三个文件

当我使用这 3 个文件的文档给出的命令行时,我确实收到以下错误:

nvcc fatal : 不知道如何处理'-dc'

如果我在命令行中删除 -dc,我也会收到以下错误:nvcc fatal : 不知道如何处理'-arch=sm=20'

有谁知道我该如何解决这个问题?

非常感谢您的帮助

吉博

在下面,您将找到我在终端中输入的命令行和文件。

使用的命令行:nvcc –arch=sm_20 –dc a.cu b.cunvcc –arch=sm_20 a.o b.o

文件代码(只是文档的复制粘贴):(好像代码police在粘贴的时候变了,这个小问题请见谅)

******* b.h ***********
#define N 8

extern __device__ int g[N];
extern __device__ void bar(void);

******* b.cu***********
#include "b.h"
__device__ int g[N];
__device__ void bar (void)
{
g[threadIdx.x]++;
}

******* a.cu ***********
#include <stdio.h>

#include "b.h"

__global__ void foo (void) {
__shared__ int a[N];
a[threadIdx.x] = threadIdx.x;
__syncthreads();
g[threadIdx.x] = a[blockDim.x - threadIdx.x - 1];
}

bar();

int main (void) {
unsigned int i;
int *dg, hg[N];

int sum = 0;

foo<<<1, N>>>();

if(cudaGetSymbolAddress((void**)&dg, g)){
printf("couldn't get the symbol addr\n");
return 1;
}

if(cudaMemcpy(hg, dg, N * sizeof(int), cudaMemcpyDeviceToHost)){
printf("couldn't memcpy\n");
return 1;
}

for (i = 0; i < N; i++) {
sum += hg[i];
}

if (sum == 36) {
printf("PASSED\n");
} else {
printf("FAILED (%d)\n", sum);
}

return 0;
}

最佳答案

确保您使用的是正确版本的 nvcc。我遇到了这样的问题,这是因为我使用的是 NVCC 5.5 而不是 6.0。

还要确保破折号具有正确的符号:使用 - (0x2D) 而不是 - (0xD0)。

关于ubuntu - "don' t know what to do with' nvcc fatal error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22730484/

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