초보 코린이의 성장 일지

C++ AMP (Accelerated Massive Parallelism) 본문

개인 공부

C++ AMP (Accelerated Massive Parallelism)

코오린이 2023. 1. 4. 19:17

불연속 그래픽 카드의 GPU와 같은 데이터 병렬 하드웨어를 활용하여 C++ 코드 실행을 가속화시킨다.

AMP를 사용하면 이종 하드웨어에서 병렬 처리 방법을 사용하여 실행을 가속화 할 수 있도록 다차원 데이터 알고리즘을 코딩할 수 있게 만들어 줍니다.

 

출력 결과

일반적인 C++로 코드를 출력한다면 위에 보이는 결과가 나오게된다.

이는 CPU로 계산한 결과값이기도 합니다.

 

하지만 여기서 AMP를 사용하여 GPU가 연산을 하게 된다면 어떤 방법으로 코드를 작성하게 되는지 살펴보겠습니다.

 C++ APM으로 구현한 코드인데 값이 정확히 나오지 않아 나중에 깊게 파봐야겠다. 아직까진 쓰는 방식에 대해서만 다뤄야겠다.

 

1. C++에서는 메모리는 CPU가 접근할 수 있는 메모리이다.

2. GPU로 처리하기 위해서는 직접적으로 접근이 필요하다.

3. C++에서 할당한 메모리는 GPU가 접근할 수가 없다.

4. 비디오 - 메모리 시스템 - 메모리 데이터를 넘겨(복사?)주는 과정이 필요하다.

 

GPU가 접근할 수 있는 메모리 영역을 데이터로 만든 부분이 된다.

데이터를 만들 수 있는 영역이 array, array_view로 구분이 됩니다.

 

- 람다식에 대한 이해가 있어야 APM를 사용하는 용이하다.

- 동시성(concurrency)을 알고 접근하면 더 편하게 활용이 가능하고 이해가 쉽다.

- concurrency : 다중 프로세서를 이용한 동시성, 다중 스레드를 이용한 동시성

 

나중에 기회가 되면 올바르게 정리를 해봐야겠다.

'개인 공부' 카테고리의 다른 글

C 정리  (0) 2023.01.19
OBB 분리축  (0) 2023.01.06
퀵소트 (Quick Sort)  (0) 2023.01.03
데이터베이스 트리거 (DB Trigger)  (0) 2022.12.31
프로그래밍의 발전?  (0) 2022.12.29
Comments