
Windows System 프로그래밍
megayuchi
₩165,000
초급 / windows-programming, C++, microsoft-visual-c++, 운영체제, system-programming
4.9
(14)
Windows용 게임과 어플리케이션을 개발하기 위한 필수 Windows System프로그래밍 기술을 알려드립니다.
초급
windows-programming, C++, microsoft-visual-c++

GPGPU는 더 이상 낯선 기술이 아닙니다. 과거부터 과학 계산, 시뮬레이션, 그래픽 처리 등 다양한 분야에서 활용되어 왔으며, 오늘날에는 AI 기술의 성능을 결정짓는 핵심 기반으로 자리 잡았습니다. 이러한 흐름 속에서 GPU 프로그래밍 능력은 개발자의 역량을 한 단계 확장시키는 강력한 도구가 됩니다. CPU 중심의 개발을 넘어, 대규모 병렬 연산을 직접 다룰 수 있다는 것은 곧 새로운 문제 해결 방식과 더 넓은 개발 가능성을 의미합니다. 본 강의는 GPGPU의 사실상 표준이라 할 수 있는 CUDA 프로그래밍을 기초부터 실전까지 체계적으로 다룹니다. GPU 구조 이해, 병렬 프로그래밍 모델, 메모리 최적화, 커널 작성 등 실무에 바로 적용 가능한 내용을 중심으로 구성하여, 수강 후에는 스스로 GPU 기반 프로그램을 설계하고 구현할 수 있는 수준을 목표로 합니다.
11명 이 수강하고 있어요.
난이도 중급이상
수강기한 무제한



네이버
에 관심있는 사람들도 듣는 중!



네이버
에 관심있는 사람들도 듣는 중!
CUDA 병렬 프로그래밍 능력 - GPU 스레드 구조, 메모리 계층, 커널 실행 모델을 이해하고 직접 CUDA 커널을 작성할 수 있게 됩니다.
CPU 대비 수십~수백 배 빠른 연산 가속 코드 - 벡터 연산, 행렬 곱셈 등 실제 연산을 GPU로 가속하는 프로그램을 작성하여 성능 차이를 직접 확인할 수 있습니다.
GPU 프로그래밍은 더 이상 특별한 분야의 전유물이 아닙니다. 이제는 AI, 시뮬레이션, 영상 처리, 과학 계산 등 거의 모든 영역에서 GPU가 핵심 역할을 맡고 있으며, 이를 다룰 수 있는 능력은 개발자의 경쟁력을 크게 확장시키는 강력한 무기가 됩니다. C/C++ 경험은 있지만 GPU 프로그래밍이 낯설어 선뜻 시작하지 못했던 개발자를 위해 본 강의를 준비하였습니다. CUDA의 기본 개념부터 GPU 구조 이해, 병렬 프로그래밍 모델, 메모리 최적화, 커널 작성, 스트림 활용, 이미지 처리까지 실전 중심으로 다루며, 수강 후에는 스스로 GPU 기반 프로그램을 설계하고 구현할 수 있을 것입니다.
GPU가 그래픽 전용 장치에서 범용 연산을 수행하는 GPGPU로 발전해 온 흐름을 살펴보고, CUDA 프로그래밍을 이해하는 데 필요한 핵심 하드웨어·소프트웨어 개념을 전체적으로 설명합니다. GPU 구조, 병렬 처리 방식, CUDA 실행 모델 등 이후 실습을 위한 기초를 가볍게 다룹니다.
CUDA 개발을 시작할 때 가장 많이 겪는 어려움이 바로 초기 환경 설정입니다. 이 챕터에서는 CUDA Toolkit 설치부터 컴파일러 설정, IDE 구성까지 개발에 필요한 전체 환경을 단계적으로 정리합니다. 이후 챕터의 예제를 실행하고 디버깅할 수 있는 실전 개발 환경을 구축하는 방법을 설명합니다.
CUDA 프로그램이 동작하는 기본 흐름을 설명합니다. CUDA환경 초기화와 종료 처리 과정을 살펴보고 host memory → device memory 복사, 커널 실행, device memory → host memory 복사로 이어지는 전체 실행 구조를 단계적으로 설명합니다. 또한 CUDA 커널 호출 방식, 핵심 CUDA API 사용법 등 이후 실습의 기반이 되는 필수 개념들을 정리합니다.
GPU 성능 최적화의 핵심 요소인 global memory coalescing 개념을 다룹니다. 스레드들이 글로벌 메모리에 접근할 때 하드웨어적으로 어떤 방식으로 요청이 병합(coalesce)되는지 설명하고, 최적의 접근 패턴과 최악의 패턴이 어떤 차이를 만드는지 실제 시나리오를 통해 비교합니다. 또한 메모리 접근 성능을 극대화하기 위한 데이터 배치 전략과 스레드 구성 방법을 정리하여, 효율적인 CUDA 커널을 작성하기 위한 필수 최적화 기법을 설명합니다.
블록 내부에서 스레드들이 어떻게 협업하며 더 높은 성능을 이끌어낼 수 있는지를 다룹니다. Shared Memory를 활용해 블록 단위로 데이터를 효율적으로 공유하는 방법을 설명하고, 이어서 warp level intrinsic을 사용해 워프 내부 스레드 간 협업을 수행하는 기법을 소개합니다. 이러한 두 가지 협업 방식을 조합해 보다 최적화된 CUDA 커널을 작성하는 전략을 다루며, 실제 예제로 warp-level reduction과 block-level reduction을 활용해 최소값을 찾는 과정을 구현해 봅니다.
CUDA에서 행렬을 전치(transpose)하는 과정을 통해 Shared Memory 활용의 핵심 개념을 익힙니다. 전치 연산에서 자주 발생하는 비효율적인 글로벌 메모리 접근 패턴과 그로 인한 성능 저하 사례를 살펴보고, Shared Memory를 사용해 메모리 접근을 최적화하는 방법을 설명합니다. 또한 Shared Memory에서 발생할 수 있는 bank conflicts 문제를 해결하는 기법을 다루며, 행렬 전치 예제를 통해 Shared Memory를 효과적으로 사용하는 실전 전략을 배울 수 있습니다.
행렬 전치(Transpose) 예제에 이어, Shared Memory를 더욱 효과적으로 활용하는 방법을 행렬 곱셈(Matrix Multiplication) 사례를 통해 다룹니다. CUDA에서 대규모 행렬 곱셈을 처리하는 기본 구조를 설명하고, 큰 행렬을 작은 타일(tile) 단위의 부분 행렬로 분할해 연산하는 기법을 소개합니다. 또한 행렬 전치와 유사하면서도 다른 행렬 곱셈의 메모리 접근 패턴을 비교하며, Shared Memory를 활용해 메모리 접근 병목을 줄이고 성능을 극대화하는 전략을 다룹니다.
메모리 접근 최적화가 아닌 warp 스케줄링 관점에서 GPU 성능을 끌어올리는 방법을 다룹니다. occupancy가 무엇인지, 그리고 GPU가 얼마나 많은 warp를 동시에 실행할 수 있는지가 왜 중요한지 설명합니다. occupancy를 높이기 위한 스레드 구성, 레지스터 사용량, Shared Memory 사용량 조절 전략을 살펴보고, occupancy가 높을 때 성능이 잘 나오는 경우와 높아도 오히려 성능이 떨어지는 경우를 비교합니다.
CUDA에서 비동기 실행을 가능하게 하는 cuda stream의 개념을 다룹니다. 기본적으로 모든 CUDA 프로그램에서 암묵적으로 사용되는 default stream의 동작 방식을 먼저 이해한 뒤, 여러 stream을 활용해 연산과 메모리 복사를 겹쳐 실행함으로써 전체 성능을 향상시키는 방법을 설명합니다. 또한 Nsight Systems를 사용해 스트림 기반 비동기 실행이 실제로 어떤 성능 이점을 제공하는지 분석합니다.
이미지 프로세싱에서 널리 사용되는 커널 필터(kernel filter) 개념을 소개하고, Gaussian 필터와 Laplacian 필터를 CUDA로 직접 구현하여 GPU 기반 이미지 처리 기본기를 배워봅니다.
Texture Memory와 Shared Memory를 활용해 메모리 접근 효율을 높이는 방법을 설명하고, 동일한 알고리즘을 다양한 메모리 구조로 구현했을 때 실제 하드웨어에서 어떤 성능 차이가 발생하는지 비교 분석합니다.
이미지의 픽셀 분포를 분석하는 히스토그램(histogram)을 CUDA로 구현하며, 병렬 환경에서의 데이터 누적 방식과 그에 따른 성능 이슈를 다룹니다. CUDA에서 히스토그램을 계산하는 기본 구조를 살펴보고, 이 과정에서 필수적으로 등장하는 atomic operation의 동작 원리와 성능 저하 문제를 설명합니다. 이어서 Shared Memory와 warp intrinsic을 활용해 atomic 연산의 병목을 줄이고, 보다 효율적인 히스토그램 계산 커널을 작성하는 최적화 기법을 다룹니다.
Direct3D 12 렌더링 파이프라인과 CUDA를 결합해 GPU 그래픽스와 GPGPU 연산을 동시에 활용하는 방법을 다룹니다. 간단한 D3D12 게임 프레임워크의 Render Target과 Depth Buffer를 CUDA 리소스로 맵핑하고 D3D12의 Timeline과 CUDA의 Timeline을 동기화 하는 방법을 설명합니다.
예제코드는 CUDA 리소스로 맵핑한 텍스처들을 입력으로 받아 Gaussian Blur, 외곽선 추출, 노멀 맵 렌더링, 깊이값 시각화 등 다양한 이미지 프로세싱을 적용해 최종 화면으로 출력하는 기능을 구현합니다.
운영 체제 및 버전(OS): Windows 10/11
사용 도구: Visual Studio 2026
cuda Toolkit 13.2
nvidia GPU
pdf 제공
첨부파일을 통한 소스코드 제공
필수
C/C++
기초적인 Windows 프로그래밍
권장(다음의 강의들이 도움이 될 수 있습니다.)
Windows 시스템 프로그래밍 (https://inf.run/VciKC)
Windows 디버깅 tip (https://inf.run/KH5J6)
GTX1600번대 이상의 그래픽카드가 필요합니다.
GTX1000번대 그래픽 카드에서도 예제를 실행할 수 있으나 프로젝트 설정을 약간 수정해야 합니다. 수정 방법은 '설치 및 개발환경 설정' 챕터에서 다룹니다.
CUDA 13.3 이상 최신 CUDA Toolkit사용도 가능합니다. 역시 프로젝트 설정을 약간 수정해야 합니다. 수정방법은 '설치 및 개발환경 설정' 에서 다룹니다.
ai기술을 다루지는 않습니다. 행렬곱이나 커널 필터 적용은 ai기술과 관련이 있으나 직접적으로 ai기술을 다루지는 않습니다.
학습 대상은
누구일까요?
그래픽스 경험이 없어서 GPU 프로그래밍에 두려움이 있지만 병렬 연산을 활용해보고 싶은 프로그래머
AI·시뮬레이션·과학 계산을 직접 가속해보고 싶은 개발자
선수 지식,
필요할까요?
C/C++
Visual Studio를 이용한 기초적인 Windows 프로그래밍
인프런인증
커리어인증
3,307
명
수강생
95
개
수강평
22
개
답변
5.0
점
강의 평점
11
개
강의
C++,x86/x64 ASM, DirectX9/11/12, Metal, OpenGL, CUDA, win32, winsock/bsd socket
D3D12프로그래밍 기초편 - https://inf.run/7gJhS
D3D12프로그래밍 기초플러스 - https://inf.run/itHDW
DirectX Raytracing 프로그래밍 - https://inf.run/cQqx7
Windows System 프로그래밍 - https://inf.run/AwfCv
Windows 디버깅 팁 - https://inf.run/zL7E4
블로그 : https://megayuchi.com
Youtube : https://youtube.com/megayuchi
LinkedIn : https://www.linkedin.com/in/megayuchi/
전체
13개 ∙ (16시간 23분)
해당 강의에서 제공:
1. 강의소개
10:25
2. CUDA 프로그래밍 - CUDA개요
01:17:08
4. CUDA 프로그래밍 - 프로그래밍 기본
01:33:53
9. CUDA 프로그래밍 - Occupancy
01:59:00
10. CUDA 프로그래밍 - cuda Stream
01:49:56
11. CUDA 프로그래밍 - Image Filter
01:45:58
지식공유자님의 다른 강의를 만나보세요!
같은 분야의 다른 강의를 만나보세요!
신규가입 25% 할인
월 ₩33,000
5개월 할부 시
25%
₩220,000
₩165,000