25%
37,120원
중급자를 위해 준비한
[프로그래밍 언어, 딥러닝 · 머신러닝] 강의입니다.
✅ 전체 (1) ~ (6)의 시리즈 중, (6) parallel search, parallel sort 구현 ✅ NVIDIA GPU + CUDA 프로그래밍을 기초부터 차근차근 설명합니다. ✅ C++/C 언어로 배열/행렬/이미지처리/통계처리/정렬 등을 병렬 컴퓨팅으로 매우 빠르게 처리합니다.
이런 걸
배워요!
프로그램은 속도가 생명!
대규모 병렬 처리 기법으로 빠르게 만들어요 🚀
대규모 병렬 컴퓨팅이 중요하다던데 🧐
GPU/그래픽 카드 기반의 대규모 병렬 컴퓨팅은 AI, 딥러닝, 빅데이터 처리, 이미지/영상/음성 처리 등에서 매우 활발하게 사용되고 있어요. 그리고 현재 GPU 병렬 컴퓨팅에서 가장 광범위하게 적용되는 기술이 NVIDIA 사의 CUDA 아키텍처입니다.
병렬 컴퓨팅 중에도 대규모 병렬 컴퓨팅, CUDA (쿠다) 등의 기술이 중요하다는데, 정작 이 분야를 체계적으로 가르쳐 주는 강의를 찾기가 어려워서 학습을 시작하기도 힘들죠. 이 강의를 통해 CUDA 프로그래밍을 차근차근 배워보세요. CUDA나 병렬 컴퓨팅은 이론적 배경이 필요하고 난이도가 있는데요. 이 강의의 풍부한 예제와 배경지식 설명과 함께 기초부터 따라간다면 충분히 하실 수 있어요! 이 강의는 시리즈 강의로 제작될 예정으로, 충분한 강의 시간을 확보해서 제공합니다.
본 강의에서는 C++/C 프로그래머들이 CUDA 라이브러리와 C++/C 함수들을 조합해서 다양한 분야의 문제를 대규모 병렬 처리 기법으로 가속하는 방법을 설명하고자 합니다. 이 방법을 통해 이미 개발된 C++/C 프로그램들을 가속하거나, 새로운 알고리즘/프로그램을 완전히 병렬 컴퓨팅으로 개발해서 획기적으로 빨라지게 할 수 있습니다.
📢 수강 전 확인해주세요!
- 실습을 위해 NVIDIA CUDA가 작동하는 하드웨어 환경을 미리 확보해주세요. NVIDIA의 GeForce 그래픽 카드가 장착된 PC/노트북이 꼭 필요합니다.
- 일부 클라우드 환경에서도 NVIDIA GeForce 그래픽 카드를 사용할 수 있지만, 클라우드 환경의 설정은 자주 바뀌고 유료인 경우가 많습니다. 클라우드 환경이라면 그래픽 카드 사용 방법은 수강생 본인이 확보하셔야 합니다.
- 강의 실습 환경은 커리큘럼의 <00. 강의 전 준비 사항> 강의에서 자세히 확인하실 수 있습니다.
강의 특징 ✨
#1.
풍부한
예제와 설명
CUDA와 대규모 병렬 컴퓨팅은 풍부한 예제와 설명이 필요해요. 이 시리즈 강의에서는 총 24시간 이상의 실제 강의 시간을 제공합니다.
#2.
실습은 필수!
컴퓨터 프로그래밍 과목이라서, 풍부한 실습을 강조하고, 실제 작동하는 source code를 제공해서, 하나하나 따라가면서 해 볼 수 있습니다.
#3.
중요한 부분을
집중적으로!
강의 시간에는 이미 설명한 source code 부분에 대해서는 중복 설명을 최대한 배제해서, 바뀐 부분이나, 강조해야 할 부분에만 집중해서 학습할 수 있습니다.
이런 분들께 추천해요 🙋♀️
![inflearn_python_04.png](https://cdn.inflearn.com/public/files/courses/324145/c8738b0e-99c5-45c1-9fc0-3b64141b36b6/inflearn_python_04.png)
취업 전에 신기술에 대한 포트폴리오를 추가하고 싶은 대학생
![inflearn_python_07.png](https://cdn.inflearn.com/public/files/courses/324145/9b8f6df3-8278-446f-b0da-394371126807/inflearn_python_07.png)
기존 프로그램을 획기적으로 개선하고 싶은 프로그래머
![inflearn_python_06.png](https://cdn.inflearn.com/public/files/courses/324145/51fc6ebd-2a7d-4032-91bf-36b99f3789f1/inflearn_python_06.png)
다양한 응용 프로그램이 어떻게 고속화되었는지 알고 싶은 전공 연구자
![inflearn_python_05.png](https://cdn.inflearn.com/public/files/courses/324145/5d79f617-d626-4da8-8864-7b09fdd53a7d/inflearn_python_05.png)
AI, 딥러닝, 행렬 계산 등의 병렬 처리 이론과 실제를 알고 싶은 분
미리 보는 강의 후기 🏃
*아래 후기는 지식공유자가 같은 주제로 진행한 외부 강연에 대한 후기입니다.
"저는 병렬 알고리즘이나 병렬 컴퓨팅에 대해서 아무것도 몰랐는데,
강의를 들은 후에는 병렬 컴퓨팅에 자신감을 가지게 되었어요."
"기존 C++ 프로그램으로는 해결을 못 했던 알고리즘이 많았는데,
이 강의를 통해서 실시간 처리가 가능하게 개선할 수 있었어요!"
"강의를 들은 후 면접을 볼 때 병렬 컴퓨팅에 경험이 있다고 했더니 면접관들이 엄청 놀라셨어요.
대학생 레벨에서는 CUDA나 병렬 컴퓨팅 강의가 찾기 쉽지 않다고 하더라고요."
CUDA 프로그래밍 정복 로드맵 🛩️
- CUDA 프로그래밍 강의는 주제에 대한 집중도를 높이고자 7개 시리즈, 총 24시간 이상의 강의로 기획되었습니다.
- 각 강의는 다시 6개 이상의 섹션으로 구성되며, 섹션마다 독립적인 주제를 다루고 있습니다. (현재 강의인 파트 0는 2개의 섹션으로 Introduction만 제공합니다.)
- 강의에서 사용한 슬라이드가 PDF 파일로 제공되며, 실습 예제가 설명된 섹션에서는 사용한 프로그램 source code가 제공됩니다.
파트 0 (1시간 무료 강의)
- MPC, CUDA 소개 - MPC와 CUDA에 대한 전체적인 소개를 하는 introduction 부분입니다.
파트 1 (3시간 40분)
- CUDA kernel 개념 - CUDA 프로그래밍의 시작인 CUDA kermel의 개념을 학습하고, 병렬 컴퓨팅이 작동하는 것을 확인하실 수 있습니다.
파트 2 (4시간 15분)
- vector addition - 1차원 배열 형태인 vector (벡터) 끼리의 연산을 다양한 예제로 제시하고, AXPY 루틴을 실제로 CUDA로 구현합니다.
파트 3 (4시간 5분)
- memory hierarchy - CUDA 프로그래밍의 핵심인 메모리 구조를 학습합니다. 예제로 matrix addition, adjacent difference 등을 구현합니다.
파트 4 (3시간 45분)
- matrix transpose & multiply - 2차원 배열 형태인 matrix(매트릭스, 행렬)끼리의 연산을 다양한 예제로 제시하고, GEMM 루틴을 CUDA로 구현합니다.
파트 5 (3시간 55분)
- atomic operation & reduction - CUDA 컨트롤 플로우에 대한 이해와 더불어, atomic operation, reduction 등의 문제 정의부터 해결책까지 학습합니다. GEMV 루틴도 CUDA로 구현합니다.
파트 6 (3시간 45분)현재 강의
- search & sort - CUDA 아키텍처를 이용해서, search-all 문제나 even-odd sort, bitonic sort, counting merge sort 등을 효과적으로 구현하는 예제를 학습합니다.
CUDA 프로그래밍과
대규모 병렬 컴퓨팅 정복 완료!
Q&A 💬
Q. 유료 강의 수강평은 어떤가요?
유료 강의가 (1) ~ (6) 으로 순차적으로 오픈되어서, 수강평이 흩어져있고, 아직 비공개입니다. 유료 강의는 현재 다음과 같은 수강평들을 받았습니다.
- 하나의 예제에서 다양한 테크닉을 적용해 보면서 성능을 최대한으로 끌어올리는 과정을 자세히 설명해주셔서 도움이 많이 되었습니다.
- 메모리 구조나 로직들을 시각화하여 설명해 주시니 이해도 훨씬 수월했습니다.
- 막연한 AI 공부 중, 디바이스에 대한 심화내용을 더할 수 있어 좋습니다.
- 소프트웨어 설치가 잘 설명되고 소스 코드도 제공되어서 실습하기 편했습니다.
Q. 비전공자도 들을 수 있는 강의인가요?
- C++ 프로그래밍은 어느 정도 경험이 있으셔야 합니다. 최소한, C 프로그래밍을 하신 경험은 있으셔야 합니다. 모든 예제가 되도록 평이하게 작성되었지만, 모두 C++/C 코드로 제공되며, malloc, memcpy 등의 함수가 제공하는 기능 정도에 대해서는 별도로 설명하지 않습니다.
- 다만, 컴퓨터 구조 (레지스터, 캐시 메모리 등), 운영 체제 (타임 쉐어링 등), 컴파일러 (코드 생성, 코드 최적화) 등에 대한 이해가 있으시면, 강의 내용을 더 깊게 이해하실 수 있습니다.
- 이 강의의 최초 설계는 4년제 대학, 컴퓨터 전공, 졸업반 학생들의 심화 학습용이었습니다.
Q. 강의를 듣기 전 준비해야 할 것이 있나요? 수강 관련 참고 사항(갖춰야 할 환경, 기타 유의 사항 등)이 있나요?
- 실습을 위한 NVIDIA CUDA가 작동하는 하드웨어 환경은 미리 확보하셔야 합니다. NVIDIA의 GeForce 그래픽 카드가 장착된 PC/노트북이 꼭 필요합니다.
- 일부 클라우드 환경에서도 NVIDIA GeForce 그래픽 카드를 사용할 수 있지만, 클라우드 환경의 설정은 자주 바뀌고, 유료인 경우가 많아서, 클라우드 환경이라면, 그래픽 카드 사용 방법은 수강생 본인이 해결하셔야 합니다.
Q. 수업 내용을 어느 수준까지 다루나요?
- 파트 0에서 출발해서, 파트 1에서 파트 6로 올라갈수록, 더 깊은 이론과 더 많은 이해도를 요구합니다.
- 반드시 파트 0에서 파트 6의 순서대로, 정주행해서 수강하시기를 강력히 권고드립니다.
- 파트 6의 마지막 부분에서 다루는 counting merge sort는 전문 연구자들도 금방 따라가기에는 어려운 정도의 문제입니다. 다만, 차근차근 따라갔던 off-line 수강생들은 앞부분의 학습을 바탕으로, 무난하게 이해했다는 경우가 더 많았습니다.
Q. 수강 기한을 설정하는 이유가 있나요?
- 수강 기한을 설정한 것은, 컴퓨터 분야 특성상 그 정도의 시간이 지나면 이 강의 내용이 이미 옛날 이야기가 될 가능성이 크기 때문입니다.
- 그때쯤엔, 새로운 강의에서 다시 찾아뵙겠습니다. 😄
Q. 동영상에 자막이 들어가 있나요?
- 네. 현재는 모든 동영상에 자막이 들어가 있습니다.
- 다만, 추후에 추가되는 동영상 일부에는 동영상 자막이 없을 수도 있습니다.
강의 자료에 사용한 폰트 관련 사항 ✔️
- 동영상과 PDF 파일에서는 Google / Adobe의 무료 폰트만 사용하였습니다.
- 한글 폰트는 "본고딕" Noto Sans KR, 영문 폰트는 Source Sans Pro, Source Serif Pro를 사용하였고,
- 다음 링크에서 모두 무료로 다운로드할 수 있습니다. 다운로드 후에는 압축 해제 후, 마우스 오른쪽 버튼으로 PC/노트북 등에 설치할 수 있습니다.
- https://fonts.google.com/noto/specimen/Noto+Sans+KR에서, "download family"로 ZIP 파일로 다운로드 후 설치
- https://fonts.google.com/specimen/Source+Sans+Pro에서, "download family"로 ZIP 파일로 다운로드 후 설치
- https://fonts.google.com/specimen/Source+Serif+Pro에서, "download family"로 ZIP 파일로 다운로드 후 설치
이런 분들께 추천드려요!
학습 대상은
누구일까요?
선수 지식,
필요할까요?
드립커피+한모금더 입니다.
One more cup of drip coffee for the road