2014-04-23 1 views
0

Open CL의 시동기로서 GPU 컴퓨팅을 최적화하기위한 간단한 이해가 있습니다.OPEN CL, Python and parallelisation

내가 이해할 수있는 한, 즉, 1000x1000의 행렬을 만들 수 있으며 동시에 GPU를 사용하여 각 픽셀에 하나의 코드를 넣을 수 있습니다. 무엇 다음 옵션에 대해 : I는 100 × 100 매트릭스 100 번을 가지고 다르게 계산해야

  • . 그래서
    시리얼을 실행해야합니다. 즉, 100 개의 인스턴스를 시작할 수 있습니다. 즉, 100 개의 파이썬 다중 프로세스를 시작하고 각 은 GPU에 매트릭스 계산을합니다 (충분한 리소스가 있다고 가정).

  • 다른 방법으로 라운드, 나는 을 계산하기 위해 1000 X 1000 및 100 개의 다른 인스턴스를 하나 가지고 있는데, 같은 시간 또는 직렬 처리로이 작업을 수행 할 수 있습니까?

어떤 조언이나이 가장 빠른 방법을 해결하는 방법 개념은

답변

1

OpenCL을 실행 모델의 각 포인트에 대한 실행 단지 기능이 커널을 중심으로 돌아

감사 아드리안를 감사하여 문제 도메인. OpenCL 장치에서 실행하기 위해 커널을 시작하면이 도메인에 대해 1, 2 또는 3 차원 색인 공간 (일명 NDRange 또는 전역 작업 크기)을 정의합니다. 실제 문제에 NDRange를 매핑하는 방법은 전적으로 귀하에게 달려 있습니다.

예를 들어, 100x100 매트릭스 100 세트를 처리하기 위해 100x100x100 인 NDRange를 시작할 수 있습니다 (모두 독립적이라고 가정). 그런 다음 커널은이 행렬 중 하나의 단일 요소에 대한 계산을 정의합니다. 또는 100x100 NDRange가있는 100 개의 커널을 실행하여 동일한 결과를 얻을 수도 있습니다. 전자는 여러 커널을 시작하는 오버 헤드를 피하기 때문에 더 빠를 것입니다.

OpenCL 실행 모델에 대한 자세한 내용은 OpenCL specification을 참조하십시오. 특히 3.2 절에서는 커널 실행을 둘러싼 핵심 개념을 잘 설명합니다.

+0

감사합니다. –