#include <cuda.h>
#include <stdint.h>
#include <assert.h>
__constant__ int32_t m;
int main(int argc, char* argv[])
{
void* s;
int r = cudaGetSymbolAddress(&s, m);
assert(r == cudaSuccess);
return 0;
}
컴파일 :
$ nvcc test.cu -o test -arch compute_20 -code sm_20
실행 :
$ ./test
가져 오기 :
test: test.cu:15: int main(int, char**): Assertion `r == cudaSuccess' failed.
Aborted (core dumped)
(일 경우, 에서 차이점을 확인하기 위해 두 개의 다른 컴퓨터에서 서로 다른 두 개의 카드로 테스트했습니다. 두 경우 모두 Cuda 6)
무엇이 잘못 되었나요?
좋아, 내가 물지. 실제로 얻는 오류는 무엇입니까? 즉 'r'의 값은 무엇입니까? 그리고 논쟁은'& m'이 아니어야합니까? – Angew
@Angew 두 가지 방법으로 작동해야합니다 .... 그럼에도 불구하고, 나는 당신의 제안을 시도했다. 그것도 작동하지 않습니다. 오류는 cudaErrorInvalidSymbol – dsign
테스트 한 GPU는 무엇입니까? 코드가 실행되는 GPU보다 높은 타겟 아키텍처 용으로 코드를 컴파일하면 동일한 오류가 발생합니다. – sgarizvi