GPU에 작업을 할당하는 방법

GPU에 작업을 할당하는 방법

Computerbase.de에서 벤치마크를 찾았습니다(http://www.computerbase.de/artikel/grafikkarten/2013/intel-haswell-grafik-fuer-desktop-pcs-im-test/3/독일어) 한 경우에는 작업(여기서는 비디오 트랜스코딩)이 CPU에 의해 수행되고 다른 경우에는 (통합) GPU에 의해 수행됩니다.

여기에 이미지 설명을 입력하세요.

Linux에서 GPU에 작업(예: 비디오 트랜스코딩)을 명시적으로 할당하는 방법은 무엇입니까?

답변1

GPU에서 코어를 활용하는 가장 좋은 방법은 다음을 사용하는 것입니다.오픈CL. 아이디어는 간단합니다. 커널(라이브러리를 사용하지 않고 기본 C 코드만 사용할 수 있는 작은 코드 조각)을 작성합니다. 예를 들어 프레임을 필터링하려면 각 픽셀에 대해 일부 계산을 수행해야 하며 이것이 커널 코드가 수행하는 작업입니다.

그런 다음 커널을 컴파일하고, GPU에 메모리를 할당하고, 메인 메모리에서 데이터를 복사해야 합니다. 결과에 대한 메모리도 할당해야 합니다. 그런 다음 스레드를 생성하고 실행을 위해 커널을 GPU로 보냅니다(CPU 코어와 GPU 코어를 모두 사용하여 커널을 실행할 수도 있다고 생각합니다). 따라서 각 스레드는 픽셀당 한 번씩 커널을 실행합니다. 결과를 다시 메인 메모리에 복사한 후 CPU를 계속 사용합니다.

이것이 제가 설명할 수 있는 가장 쉬운 방법이지만, 여전히 알아야 할 세부 사항이 백만 개 있으므로 학습을 시작하는 것이 좋습니다 ;) 그래픽 카드 제조업체 개발자 웹사이트에서 시작할 수 있습니다. OpenCL 개발을 시작하는 방법에 대한 라이브러리와 튜토리얼을 찾을 수 있습니다.

관련 정보