2017-05-10 21 views
0

OpenCL 커널의 인수와 관련된 두 가지 질문이 있습니다. 제 질문을 설명 할 때 틀린 부분이 있으면 제게 정정하십시오.OpenCL 커널의 스칼라 인수

스칼라 인수 (예 : kernel foo (int a))는 (모든 커널 인수와 마찬가지로, 스칼라인지 여부와 관계없이) 개인 주소 공간에 배치됩니다. __private 키워드가 필요하지 않습니다. 기본적으로 인수는 개인 주소 공간에 배치됩니다. Q1 : 누가 GPU 개인 주소 공간에 스칼라를 놓을까요? 스칼라에 대한 명시적인 전송 작업 (CPU에서 GPU 주소 공간으로)이 필요하지 않습니다. 그게 왜? Q2 : 인수 출력으로 스칼라를 사용할 수 있습니까? 다른 배열들 중에서도 커널 계산에서 하나의 값을 얻고 싶습니다.

답변

1

1 : OpenCL 런타임은 커널 인수를 처리합니다.

Q2 : 아니요. 버퍼 또는 이미지에 작성해야합니다. 커널의 전체 실행에서 단일 값을 원하면 감소으로 간주하십시오. 커널은 특정 수의 처리 장치에서 동시에 실행될 수 있으며 특정 순서로 실행되지 않을 수도 있습니다. 커널이 하나의 값을 저장하고 있다면 각 커널의 인스턴스입니다. 각은 하나의 값을 저장합니다. 각 인스턴스는 다른 인스턴스를 겹쳐 쓰지 않도록 값을 저장하는 자체 위치가 있어야합니다.

+0

도움 주셔서 감사합니다. –