inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

CUDA 프로그래밍 (2) - C/C++/GPU 병렬 컴퓨팅 - 벡터 vector 더하기

15-5 resource restriction - 자원 사용의 제한

Thread Block 개수에 제한이 있나요?

해결된 질문

439

OpenJR

작성한 질문수 3

0

안녕하세요

 

저번 Vector Addition 수업에서는 256M(256 x 1024 x 1024)개의 연산을 수행하기 위해서

<<<256*1024, 1024>>>로 커널을 런치하여 Block의 개수에는 제한이 없는 것 처럼 보였는데,

15-5강의에서는 SM의 Thread Block은 32개 까지 가능이라고 하셔서 헷갈리는데

두 개의 Thread Block 개념이 다른 것인지 궁금합니다.

c c++ cuda gpu 병렬-처리

답변 1

1

드립커피+한모금더

안녕하세요.

둘다 thread block 에 대한 설명이었고, 둘다 맞는 설명입니다.

  1. kernel design 시에는 thread block 의 갯수가 거의 제한되지 않습니다. (실제로는 제한이 있지만, 매우 큰 숫자라서, 실무에서는 이쪽 제한에 걸리기 전에, memory 용량 제한 등의 다른 제한이 먼저 걸리기 때문에, 제한이 없다고 설명합니다.)

  2. 반면, SM 에서는 1개의 SM 이 동시에 실행 가능한 thread block 갯수에 제한을 걸어 두었고, 보통 32개 정도로 제한됩니다. 그래서, SM 들은 kernel 에서 실행하고 있는 매우 많은 thread block 중에서, 딱 32개만 가져와서 실행을 시작하고, 실행 중인 것이 완료되면, 완료되는 대로, 1개씩 더 가져와서, 되도록 항상 32개의 thread block이 동시 실행 상태로 운영되게 합니다.

즉, CUDA 가 관리하는 kernel 의 thread pool 에는 매우 많은 thread block 이 들어갈 수 있고, 실제로 몇 천 개, 몇 만 개의 thread block을 사용하기도 합니다. 이제 CUDA가 kernel을 실행하기 시작하면, 여러 개의 SM 들이 (보통 수십개, 많으면 수백개) 돌면서, 각각은 자기가 동시에 실행시킬 수 있는 최대 갯수 (보통 32개)만큼만 가져와서 실행합니다.

전체 thread 갯수가 아무리 커도, 1개 SM 이 동시에 실행할 수 있는 thread block은 현실적으로 제한될 수 밖에 없습니다.

감사합니다.

0

OpenJR

아하 하드웨어/소프트웨어 관점에서 설명해주셨군요 감사합니다!~

이론 공부법 요약본 버전 업데이트 문의

0

10

1

코딩살구클럽 가입부탁드립니다

0

22

2

vs 디버그 옵션 설정

0

24

2

코딩살구클럽 가입 요청 확인부탁드립니다

0

29

2

54강 양자화의 끝판왕, 터보퀀트 (예정) 강의 업로드

0

28

1

블로그에 학습 내용 올려도 되나요?

0

30

1

5-S 테스트 케이스 질문

0

34

2

정처기 필기 준비할때 이 이론을 다시 외워도 될까요?

0

51

2

코살 문제풀이 환경

0

46

2

2 - T 오큰수 문제가 있는 것 같습니다.

0

42

1

추천 추가문제들

0

42

2

프로그래머스 코테 환경 관련해서 질문드립니다.

0

43

2

최댓값 구하기(서바이벌)에서 수식 구성에 대한 질문

0

39

2

최신 엔비디아 CUDA 아키텍처에서의 결정적 변경 사항

1

41

1

ch .12 grid 설정 관련 질문 드립니다.

0

105

2

memcpy 시간 고려 시 gpu vs. cpu

0

119

2

common.cpp의 procArg 함수에 대해 질문이 있습니다.

0

158

2

Warp를 동시에 돌린다는 말이 이해가 가지 않습니다.

0

337

1

매크로 함수를 쓴 이유

0

327

1

VS2022 컴파일 에러

0

394

2

global 변수가 cuda memory에서 사용되는 이유

0

394

1

Warp 갯수에 대한 고찰입니다....

0

574

2

15강 Block ID 예제 오류 질문입니다.

0

381

1

컴파일 시의 <typeinfo> 관련 에러

0

612

1