>
cuda 에서 템플릿 상수 변수를 어떻게 구현합니까? . 나는 struct 가  

template<typename T> mystruct{ T d1; T d2[10];}

위의 struct 로 상수 변수를 갖고 싶습니다  아래와 같은 코드를 사용하십시오 (이 시점에서 코드가 올바르지 않을 수 있음)

template<typename T> __constant__ mystruct<T> const_data;

메인 내에서이 작업을 수행 한 후 일부를 복사하고 싶습니다

 mystruct<float> data;

const_data

  결국 장치 코드 내에서 액세스하십시오. 누군가 이것을 달성하는 방법을 지적하면 친절 할 것입니다. 미리 감사드립니다.

  • 답변 # 1

    CUDA에서 __constant__  변수는 정적 저장을 의미합니다. 상수 메모리 변수를 인스턴스화하려는 시점에서 질문에서 명확하지 않지만 상수 메모리 변수가 정적이며 표준 컴파일 모델의 동일한 변환 단위 내에서 선언되고 사용되어야하는 경우 옵션은 다음과 같습니다. 꽤 제한적입니다.

    템플릿 형식을 정의한 다음 상수 메모리에서 해당 형식의 특정 인스턴스를 정적으로 정의하는 것을 막을 방법이 없습니다 :

    template<typename T> struct mystruct{ T d1; T d2[10]; };
    __constant__ mystruct<float> const_data;
    
    

    그러나, 내가 아는 한, 그것은 당신이 할 수있는 전부입니다.

  • 이전 PostgreSQL의 배열에서 NULL 값 바꾸기
  • 다음 regex - 특정 문자열을 포함하지 않는 문자열을 일치시키는 방법