2017-01-23 4 views
0

C# 용 Cloo 라이브러리를 사용하고 있습니다.C#/OpenCL - 커널 배열의 2D 배열

2 차원 배열을 커널 인수로 추가하는 방법에 대해 알아낼 수 없거나 찾을 수 없습니다. 그냥 나에게 오류를 제공

ComputeBuffer<char> field = new ComputeBuffer<char>(Program.context, ComputeMemoryFlags.ReadWrite | ComputeMemoryFlags.CopyHostPointer, veld); 

:

여기 내 코드입니다 '[,] 롱 문자로 변환 할 수 없습니다'. 그것은 과부하 중 하나로보고 있습니다.

내가 뭘 잘못하고 있니?

답변

0

veld

변수는 인접한 메모리 영역이어야합니다. 1D 어레이를 사용하지만 장치 측면에서 2D 어레이로 사용할 수있는 크기를 사용하십시오.

호스트 측 작업이 필요한 경우 2D 액세스를 모방하기 위해 i + w * j 인덱싱을 사용하여 액세스하십시오. 고정 배열을 사용하는 안전하지 않은 컨텍스트에서이 작업을 수행하면 성능 손실이 발생하지 않을 수 있습니다.