CUDA는 이전에 파이썬을 이용해 딥러닝 공부할 때 사용해 본 적이 있습니다. 그때는 이미지를 분석하고 비교할 때 사용했는데 CPU와 비교했을 때 정말 빠른 속도를 보여줬던 게 기억납니다. 지금은 그때보다 그래픽 카드의 CUDA의 연산 코어수가 늘어났고 AI 기술이 발달하여 더 빠른 속도를 보여주고 양질의 데이터를 생산하고 있습니다.
이 책은 CUDA GPU 병렬처리의 기본 개념을 자세히 설명하고 있습니다. 선형적 속도 향상과 병렬처리 알고리즘의 확장성과 같은 용어에 대한 이해를 돕기 위해 상세한 설명을 제공하고 있습니다. 하지만 일부 수학 공식은 이해하기 어려웠습니다.
아래표가 정말 명확하게 CPU와 GPU 에 대해서 비교 설명을 합니다.
CPU | GPU | |
발전 방향 | 각 코어의 성능 향상 | 병렬 처리(코어수) 증가 |
코어 수 | 1~수십개 | 수백~수천개 |
개별코어성능 | 높음 | 낮음 |
구조 | SSID, MIMD | SIMT |
공간분배 | 캐시 및 제어 유닛에 많은 공간 할당 | 연산 유닛에 많은 공간 할당 |
메모리크기 | 수십GB ~ 1TB | ~ 수십GB |
메모리접근 | 메모리 접근 지연 시간을 최적화 | 놉은 메모리 대역폭 확보에 집중 |
장점 | 불규칙한 작업 흐름 및 메모리 접근 패턴에 잘 대응함 | FPLOP 관점에서 CPU 대비 월등한 처리성능 |
단점 | FLOPS 관점에서 GPU 대비 낮은 성능 | 불규칙한 작업 흐름 및 메모리 접근에 의한 성능 저하 발생 |
병렬처리가 무조건 좋은게 아니며 이를 효율적으로 쓸 수 있도록 로직을 처리하고 메모리 관리를 거쳐야만 짧은 시간 내에 결과를 얻을 수 있다고 설명합니다. 또한, 이를 위해서는 프로그래밍을 할 때 메모리 할당과 제거를 통해 낭비가 발생되지 않도록 신경을 써야 하며 병렬처리 시 할당되어 있는 코어수를 생각하며 코딩하는 것이 중요하다고 설명하고 있습니다.
데이터 배열의 배치 방식에 따라 처리 속도에 영향을 주는 것도 다루고 있습니다. 최적의 결과를 얻기 위해 데이터를 배열에 올바르게 배치하는 방법을 설명하며, 워프 분기에 주의하여 병렬처리가 직렬화되지 않도록 주의해야 함을 강조하고 있습니다.
비주얼 스튜디오를 이용하여 직접 코딩을 해보면서 CUDA 실습을 해볼 수 있어서 좋았는데 제가 하는 주언어가 아니라서 조금 헤매기도 했습니다. 하지만 상세한 설명이 있어 따라가기 힘들지 않았습니다. 나중에는 곱셈프로그램을 만들어 보기도 하였는데 너무 상세한 설명이 코딩을 하는데 방해가 될 때도 있었습니다. 실습은 실습대로 진행하고 그 뒤에 상세한 설명이 있었으면 어떨까 하는 아쉬움도 있었습니다.
이 책은 초급자에게 개념을 이해하는데 도움을 줄 수 있습니다. 또한, CUDA를 사용하여 고성능 GPU 병렬처리 프로그램을 개발하고자 하는 개발자나 연구자에게 유용한 책으로 보입니다.
https://blog.yes24.com/document/18177560
'Life' 카테고리의 다른 글
젤다 왕눈 완료 (0) | 2023.06.29 |
---|---|
세금포인트 활용하기 - 세금포인트 할인 쇼핑몰 (0) | 2023.06.28 |
서평단 당첨 (0) | 2023.06.19 |
김미화마을 루캘 카페 (0) | 2023.06.18 |
젤다의 전설 티어스 오브 더 킹덤 지도 (0) | 2023.05.23 |