분류 전체보기 19

4장. CUDA 스레드

CUDA 커널 함수를 개시하면 커널 함수를 수행할 스레드 그리드를 생성한다. => 커널 함수는 프로그램 실행 중 커널이 개시될 때 생성되는 스레드들이 수행할 C 문장들을 정의 ▶CUDA 스레드의 구성 그리드 내부의 스레드들은 모두 동일한 커널 함수를 실행하기 때문에 식별하고 사용할 데이터 영역을 구별하기 위해 고유한 좌표값을 사용한다. 스레드들의 고유한 좌표값은 CUDA Luntime 이 부여한다. - blockIdx(block index), threadIdx(thread index) : 커널 함수가 사용하도록 초기화된 변수로 주어진다. - 스레드가 커널 함수 수행 중 blockIdx, threadIdx 변수를 참조하면 스레드의 좌표를 얻게 된다. - gridDim, blockDim 그림 4.1 예제 :..

CUDA 2021.07.07

3장 CUDA의 기초

CUDA와 OpenCL 프로그래머에게 GPU는 확장된 C언어로 프로그램을 할 수 있는 대규모 병렬 산술계산용 프로세서다. GPU구조의 특징 대규모 멀티스레딩 CPU에 비해 상대적으로 캐쉬 메모리 대역폭에 초점을 맞춘 메모리 인터페이스 설계 CUDA 의 컴퓨팅 시스템 : HOST와 한 개 이상의 디바이스로 구성. HOST : 전통적인 CPU에 해당. DEVICE : 많은 수의 산술 연산 유닛을 장착한 대규모 병렬 프로세서 데이터 병렬성-자료 구조를 가지고 많은 개수의 산술 연산을 동시에 수행할 수 있는 성질. CUDA 디바이스는 대규모 데이터 병렬성을 담당해, application 수행 속도를 빠르게 함. ▶CUDA 프로그램의 구조 데이터 병렬성이 거의 없는 영역은 HOST 코드로, 많은 부분은 DEVIC..

CUDA 2021.06.30

1장 서론

▶마이크로프로세서 설계시, 매니코어 궤적의 경우 병렬 응용프로그램 처리에 초점을 맞춘다. *매니코어 : 작은 코어를 대량으로 사용. GPU=매니코어, 병렬 실행에 특화 CPU=멀티코어, 순차 실행에 특화 최대 부동 소수점 연산의 처리량은 매니코어를 사용하는 GPU가 훨씬 처리량이 높다. 전위차 = 병렬 실행과 순차 실행 간 성능 차이 Figure1과 같이 CPU와 GPU는 설계 구조가 다르다. CPU 순차적인 코드의 성능 최대화를 위해 설계. 실제로는 단일 쓰레드를 구성하는 명령어들을 병렬로, 비순차적으로 실행하는 복잡한 제어 로직 사용. 데이터 접근 지연시간을 줄이기 위해 큰 cache memory 사용. 그러나 복잡한 제어 로직과 큰 cache memory 는 최대 연산 속도에 영향을 미치지 못함. ..

CUDA 2021.06.29

Thread

프로세스 내에 존재하는 일련의 실행 코드 프로세스는 존재하기만 하는 껍데기로 실제 작업은 Thread가 담당. 프로세스 생성 시 하나의 주 Thread 생성, 대부분 주 Thread가 모든 작업 처리, 주 Thread가 종료되면 프로세스도 같이 종료. Thread가 여러개 생긴 경우 주 Thread와 나머지 Thread들은 CPU 시간을 우선 순위에 따라 적절하게 분배하여 동시에 실행. 운영체제는 Thread별로 골고루 CPU시간을 배분 실제 Thread는 일정한 백그라운드 작업을 처리하고 작업이 끝나면 종료. 작업Thread가 백그라운드 작업중일때 주Thread는 작업Thread를 만들기만 함. 주Thread와 작업Thread는 서로 독립적으로 실행되지만 주Thread는 작업Thread가 종료되었는지의..

Synchronization

병렬 처리에서의 동기화 : 서로 다른 Threads 간의 실행 순서를 보장하기 위해서 구속 조건을 강제로 거는 것이다. 동시에 여러개의 Threads가 동일한 자료를 접근하여 조작하고 그 실행 결과를 접근하는 특정 순서에 의존하는 상황 ==>경쟁 상황(racecondition). 즉, 동기화 : Thread의 실행 순서를 구성하고 공유하는 데이터를 관리하는 것이다. 동기화 처리 유형 상호배제(mutual exclusion) : Thread가 공유 데이터를 사용하는 부분을 동기화 객체(critical section등)으로 block시키는 방식. 상태 동기화(condition synchronization) : 시스템이 특정 상태로 도달하기 전까지는 Thread를 완전히 block시킴. 동기화 객체 : 커널에..

Red-Black Tree

Red-Black Tree, RB Tree : 자가 균형 이진 탐색 트리. 연관 배열 등을 구현하는 데 쓰이는 자료 구조이다. *이진탐색트리(Binary Search Tree) : 특정 key 값에 대해서 삽입,삭제,탐색이 가능한 자료구조이다. : 자신의 왼쪽 서브트리에는 현재 노드보다 Key 값이 작은 것, 오른쪽 서브트리에는 Key 값이 큰 것들로 구성된다. Red-Black Tree = Balanced binary search tree Red-Black Tree = Balanced binary search tree 로 위와 같은 모양이 나오지 않도록 "조건"을 건다. Rea-Black Tree의 높이=log n 에 바운드 됨, search 연산은 O(log n)의 시간 복잡도를 가지게 된다. 특징 ..

Muex

mutex : MUTual EXclusion , 상호 배제 Critical Section을 가진 Thread들의 running time이 서로 겹치지 않게 단독으로 실행되게 하는 기술. Critical Section : 프로그램 상에서 동시에 실행될 경우 문제를 일으키는 부분. 이와 같이 Critical Section을 실행하고 있는 Thread에 다른 Thread들은 그 Critical Section에 접근X, Thread1이 Critical Section을 벗어나기를 기다려야 함.

클래스1

package Sclass; class Person { // 추상적인 개념, 설계도, 초기화X //new를 사용하여 선언 : 메모리 공간을 차지함. int age; String name; double height; double weigth; } public class Person1 { public static void main(String[] args) { //new를 사용하여 메모리 공간 차지! Person bj = new Person(); System.out.println(bj); //bj 의 주소값 출력 //변수 초기화 bj.age = 25; bj.name = "강병진"; bj.height = 177; bj.weigth = 100; Person ny = new Person(); System.out...

JAVA 2020.11.19

환영합니다!

#1 글을 작성해 보세요. 왕크다님의 회원 가입을 진심으로 축하합니다. 이 글은 비공개로 작성돼 있습니다. '편집'으로 내용을 바꾸시거나, 삭제 후 '새 글을 작성'하셔도 됩니다. 블로그를 간단하게 소개하는 글로 편집해보는 것도 좋겠네요. #2 다양한 스킨이 있어요. 티스토리에 있는 다양한 '스킨'도 살펴 보세요. 블로그나 사이트를 사용하는 목적에 맞게 스킨을 고를 수 있습니다. 어떤 이야기를 주로 하실 건가요? 잘 생각해 보시고, 마음에 드는 스킨을 고르세요. '스킨 커버 편집'을 간단히 하면 멋진 첫 화면을 가질 수 있으니 한 번 해보는 것도 좋겠네요 #3 포럼에서 사람들과 소통하세요. 마지막으로 사용하시다가 티스토리에 대해 궁금한 내용이 있다면 '포럼'을 확인하세요. 찾기 어려울 땐 직접 질문을 해..

카테고리 없음 2020.11.19