본문 바로가기

전체 글

(11)
[ CUDA 기반 GPU 병렬처리 프로그래밍 ] chapter 2-3 CUDA 프로그램 구조와 흐름 이 글은 CUDA 기반 GPU 병럴처리 프로그래밍 책의 내용을 바탕으로 정리한 글이다. chapter 2 - 3에서 핵심은 프로그램 구조와 흐름이다. 시간을 쪼개서 쓰는 글이다보니, 뜨문 뜨문 올리긴하지만, 끝까지 다 정리는 할 예정이다. 물론 기본적인 문법이나, 예제는 다루지 않을 생각이다. CUDA 프로그램 구조 및 흐름 CUDA 프로그램 구조 ( Host vs Device ) 매우 기초적이지만 중요한 부분이다. cuda 프로그램은 host 코드와 device 코드로 나누어 진다. host는 cpu를 사용하고, system memory를 사용하고, device는 CUDA core를 사용하고 Device memory( video memory 등 여러 명칭이 있음 )를 사용한다. 이 그림을 반드시 기억하..
[ CUDA 기반 GPU 병렬처리 프로그래밍 ] chapter 1 GPGPU 및 병렬처리 개요 이 글은 CUDA 기반 GPU 병럴처리 프로그래밍 책의 내용을 바탕으로 정리한 글이다. 글을 정리하기에 앞서, CUDA_C 와 관련하여 기초적인 문법이나, 활용 등은 할 수 있다. 그럼에도 하나의 책을 잡고 다시 정리하는 데는, 현재 내 수준이 기초부터 탄탄하게 잡아야할 필요성을 느꼈기 때문이다. 설명이라기 보다는 내가 이해한 바를 적고자한다. 병렬 처리의 개념 병렬 처리는 영어로 parallel processing을 말합니다. 문제를 어떻게 해결한다는 말이냐 하면 하나의 문제를 여러 개로 나누고 그 각각의 문제를 하나의 연산 유닛이 감당해서 처리한다는 말이다. 간단한 예시를 들어보면, 예시) 1-15 까지 더하는 문제 가정 - 내 하드웨어는 5개의 연산 유닛을 가지고 있음 1. 15 개의 숫자를 5개의..
[ ai 기초 ] AI의 정체는? ( feat. 수학이 필요한 이유, 확률과 통계, 선형 대수 ) 서서히 느끼는 것이지만, ai에서 수학은 선택이 아닌 필수다. 특히 개발자라면 필자는 수학이 반드시 필요하다고 생각하는 데 오늘은 그 이유에 대해 설명해볼까 한다 AI의 정체 딥러닝에서 일어나는 일에 대해 쉽게 생각해 보면, input 값을 주면 output이 나온다. 너무나 당연한가? 좀 더 풀어보자. 그 input이 image가 들어가면 원하는 task에 대한 output이 나온다. 그래 지금 이야기는 사용자의 입장에서 바라본 딥러닝이다. 여기서 조금만 더 생각해보자. 어떻게, 내가 임의의 input을 넣었는 데, 내가 원하는 output이 나오는 것일까? 신기하다. 더 잘 이해하기 위해, 사람의 입장에서 한번 생각해보자. 우리는 고양이를 보고 어떻게 고양이라고 인식하고, 강아지를 보고 어떻게 강아지..