OpenCL에서 데이터 병렬 처리를하고 있으며 벡터 명령 (SIMD)을 사용하여 처리량을 늘리고 싶습니다. int4, double2 등을 사용하려면 입력 데이터 배열을 빗어 내야합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?벡터 명령 (OpenCL)을 위해 많은 양의 데이터를 준비하는 방법?
A[0] A[1] A[2] ... A[N] B[0] B[1] B[2] ... B[N] C[0]...C[N] D[0]...D[N]
에서 하나 결합 된 버퍼 또는 별도의 것들
A[0] B[0] C[0] D[0] A[1] B[1] C[1] D[1] ... A[N] B[N] C[N] D[N]
에 N이 20000만큼 큰 수, 지금은 배가됩니다. GCN GPGPU를 사용하고 있습니다. 선호하는 이중 벡터 크기는 2입니다.
- 특정 벡터 너비의 데이터를 조합하는 다른 커널을 준비해야합니까?
- CPU가 느린 속도로 진행된다고 가정합니다.
트랜스 포즈 한 후 어떤 종류의 알고리즘을 실행할 것입니까? – mfa