현재 OpenCL에 대해 다소 혼란스러운 검색 알고리즘 (더 큰 이미지 처리 알고리즘의 일부 임)을 마이그레이션 중입니다.OpenCL 커널 내부의 임시 매트릭스 및 개인 메모리 다루기
알고리즘은 처리를 위해 몇 가지 내부 행렬과 벡터를 사용합니다. 그들 중 절반은 크기가 작고 (10 열 미만), 나머지 절반은 입력 행렬 (n * n, 2n * n 등)에 따라 약간 커질 수 있습니다.
모든 내부 행렬의 정의는 입력 행렬에 따라 다릅니다.
표준에 로컬 할당 기능이 없으므로 전역 메모리에서 작업 항목의 개인 메모리로 메모리 덩어리를 매핑하여 메모리 문제에 접근했습니다. 컨텍스트 설정 중에 청크가 겹치지 않아 런타임시 데이터 일관성이 보장됩니다.
이 접근 방식은 나에게 맞는 것 같지 않습니다. 그것은 해킹처럼 느껴집니다.
이런 상황에 처한 사람이 있습니까? 당신의 해결책은 무엇입니까?
좋아요. 거기에 마이그레이션 할 수 있습니까? 아니면 내가 다시 게시해야합니까? –
나는 사회자가 할 수 있다고 생각한다; 나는 그들이주의를 끌 수 있도록 플래그를 지정합니다. –
Paul, 글로벌 메모리에서 개인 메모리로 덩어리를 매핑한다고 할 때 당신이 의미하는 바를 명확히 할 수 있습니까?함수 내부에 배열을 선언하고 커널 인수로 전달 된 전역 포인터에서 데이터를 복사한다는 것을 의미합니까? –