1
2 차원 배열이 MxN인데, N은 2의 거듭 제곱이고 M은 2의 거듭 제곱이 아닌 임의의 정수입니다. 예를 들어 배열 A의 크기는 200x32 일 수 있습니다.OpenCL 축소 - 2D 행렬을 1D 배열로
배열의 행 전체에서 축소 (추가) 연산을 수행하여 배열 A를 크기 1x32로 줄이려고합니다. 대부분의 감소는 Blelloch/Hillis 스캔 알고리즘을 사용하여 연속 요소를 추가하여 배열을 단일 값으로 줄입니다. 내 경우에는 연속 요소가 관련이 없으므로 추가 할 수 없습니다. 그러나 요소 [1, 33, 65 ...]와 요소 [2,34,66 ..] 등을 추가해야합니다.
이것은 병합 액세스가 아니기 때문에이 문제를 해결하는 가장 좋은 방법은 무엇입니까?
나는 이것을 배우면서 올바르게 이해하고 있는지 확신 할 수 없다. 메모리 위치 1, 33, 65는 연속적으로 메모리에 배치되지 않습니다. 이 통합 된 액세스는 어떻게됩니까? – OCL
Coalesced 액세스는 모든 메모리 액세스가 연속적 일 때마다 시계의 "t"가 올 때입니다. 작업 항목 1이 실행 및 종료되지 않고 작업 항목 2가 시작되는 식으로 계속됩니다. 대신, 모두 동시에 실행됩니다. 그리고 필요한 메모리는 t1 -> [1,32], t2 -> [33,64], ... 등등입니다. – DarkZeros