본문 바로가기

분류 전체보기

CUDA 프로그램 준비 - CUDA C언어 CUDA C 언어 CUDA C언어의 목적 : C언어에 가까운 프로그램 언어를 제공하여 기존의 C프로그래머가 사용하기 쉬운 환경을 제공하는 것이다. 3.1 함수의 수식어 | __global__ - 디바이스에서 실행된다. - 호스트에서 실행할 수는 있어도 디바이스에서 호출할 수는 없다. - 디바이스로 실행하는 커널 함수 지정에 사용할 수 있다. 문법 __global__ function(a, b, c){ } 주의사항 - 리턴값은 항상 void 이다.- 을 이용하여 실행 시 블록과 스레드를 지정할 수 있다.- 재귀 호출은 할 수 없다.- 함수 내에 static변수를 가질 수 없다.- 가변형 인수를 가질 수 없다.- __global__로 지정한 함수의 포인터를 이용할 수 있다.- __host__(후술)와 동시에는.. 더보기
CUDA 프로그램 준비 - 설치 https://hiuaa.tistory.com/m/39?category=213773 더보기
CUDA의 기본 - 3(Architecture) 03. CUDA 프로세서 아키텍처 3.1 그래픽 카드 블록 다이어그램 그래픽 카드는 GPU와 보드 , 그래픽 메모리(DRAM), 기타 장치로 구성되어 있는데 프로그래밍에서는 주요하게 GPU와 메모리만을 다루게 된다. 그래픽 카드의 내부에 있는 사각형은 GPU를 나타내는 것으로 그래픽 카드 중심에 장착된 프로세서를 의미한다. PC의 메인보드에 장착된 CPU와 같은 기능을 하며 GPU 내부에 있는 모듈들은 프로세서 안에 있기 때문에 빠르게 동작한다. 3.2 스트리밍 프로세서(SP, Streaming Processor) GPU에서 연산을 하는 코어 유닛이다. 실수를 계산하기 위한 FPU(FP), 정수 계산을 하는 ALU(Int), 데이터를 로드 / 스토어 하기위한 LSU(move, cmp)를 모두 갖추고 있다.. 더보기
CUDA의 기본 - 2 2.3 CUDA 데이터의 병렬처리 CPU의 처리과정에서 여러 개의 코어가 있을 때 데이터를 분할하여 전송하고 이를 처리하기 위해서 워커함수를 스레드로 생성하여 병렬로 처리한다. CUDA프로그램 도 그 과정은 동일하지만 규모가 더 크다. 아래의 그림에서는 36개의 코어를 나타내었고 데이터릐 흐름은 6개만을 표현하였다. 실제로 CUDA 프로그램에서는 128개~ 512개의 코어로 데이터가 입력되어 동작하게 된다. CUDA를 이용한 데이터의 병렬처리 과정 ① 입력과 출력에 사용할 데이터를 PC메모리에 할당한다.② 입력과 출력에 사용할 데이터를 그래픽 메모리에 할당한다.③ 처리하고자 하는 값을 PC 메모리에 입력한다.④ PC 메모리에 있는 입력 데이터를 그래픽 메모리로 복사한다.⑤ 데이터를 분할하여 GPU로 가져.. 더보기
CUDA의 기본 - 1 01. CPU의 데이터 처리 CUDA 프로그램의 진행 순서는 기존에 CPU에서 진행하는 과정과 약간 다르다. 싱글 코어 C, C++ 또는 다른 언어로 프로그램을 구현하게 되면 컴퓨터는 다음과 같이 동작하게 된다. 1. 입력과 출력에 사용할 메모리를 할당한다.2. 처리하고자 하는 데이터를 메모리에 입력한다.3. 연산을 하고자 메모리에 있는 데이터를 CPU(레지스터)로 가져온다.4. 정수 연산은 ALU에서 실수 연산은 FLU에서 처리한다.5. 처리된 레지스터의 값을 메모리로 출력한다.6. 사용한 메모리를 해제한다. 멀티 코어 우리가 작성하는 코드는 모두 동일한 과정을 통해 처리되고, 또 이런 방식에 아주 익숙해져 있다. 만일 CPU가 멀티코어로 이루어져 있고 프로그램이 4개의 스레드로 구현되었다면 다음과 같.. 더보기
CUDA란? 01. 그래픽 카드의 성능 향상 1.1 그래픽 카드의 탄생 초기의 PC에는 별도의 그래픽 카드가 장착되지 않았지만,1990년대 애플의 매킨토시사가 PC에 GUI환경을 갖추게 되며 Microsoft사가 뒤를 따르기 시작하였다. 높은 해상도와 빠른 그래픽 처리를 위해 그래픽 카드를 장착하기 시작하면서,주요 연산은 CPU가 영상처리는 그래픽 카드 또는 내장된 별도의 그래픽 칩에서 담당하는 구조가 보편화되었다. 1.2 그래픽 카드의 발전 2000년대에 들어오면서 컴퓨터 그래픽은 영화와 게임을 중심으로 3D 영상을 중점적으로 다루게 된다.3D영상 처리를 중심으로 벌어지는 외장형 그래픽 카드의 경쟁에서 NVIDIA 와 AMD 두 회사가 살아남게 된다. 3D처리의 특성상 대단히 많은 객체에 대한 수학적, 물리적 계산.. 더보기
[C++]백준 10817번:세 수 https://www.acmicpc.net/problem/10817 #include #include using namespace std; int main() {int a, b, c;int min;cin >> a >> b >> c; if ((a >= b&&b >= c) || (a 더보기
[C++]백준 9498번:시험 성적 https://www.acmicpc.net/problem/9498 #include #include using namespace std; int main() {int score;string grade;while (true) {cin >> score;if (score >= 0 && score = 90) grade = 'A';else if (score >= 80) grade = 'B';else if (score >= 70) grade = 'C';else if (score >= 60) grade = 'D';else grade = 'F';cout 더보기