소개
One more cup of drip coffee for the road
강의
전체30로드맵
전체2수강평
- 좋은 강의 감사합니다 !
상진
2024.07.24
1
게시글
질문&답변
2024.06.11
뷰포트 간의 z-index
안녕하세요. depth buffer 쪽도 color buffer 와 같이 정확하게 조정해야 할 겁니다. 2개의 창이 겹친다면, 2번 째 창을 그릴 때는 해당되는 depth buffer 부분도 완전히 clear 시키고 다시 그리는게 좋을 것이고, 필요하다면, 이전 depth buffer 내용을 그대로 사용하는 것도 가능합니다. 대부분 동영상 강의에서 이미 설명한 내용입니다만, 관련된 내용은 glEnable/Disable (GL_DEPTH_TEST) 와 glDepthMask( ) 함수를 참고하시면 좋을 겁니다. 그외, 2개 창이 서로 다른 depth range 를 사용해야 한다면, glDepthRange 함수도 참고하시면 좋을 겁니다. OpenGL 은 window system 이 아니기 때문에, viewport, scissor 이외의 기능은 제공하지 않습니다. 2개 이상의 윈도우를 따로 따로 열어서, 각각에 OpenGL 출력을 하는 방법도 있습니다만, 그 쪽은 OpenGL 문제가 아니고, window programming 문제이니까, 그쪽 분야를 참고하셔야 할 겁니다. 감사합니다.
- 0
- 1
- 82
질문&답변
2024.06.11
scissor box에서의 테두리 라인 그리기
안녕하세요. Scissor Box 의 테두리를 두르는 방법은 특별히 따로 제공되는 옵션이 없습니다. 다른 방법으로, glDrawArrays 함수를 쓰거나 하는 방식이 가능할 겁니다. 아니면, glScissor 를 약간 크게 잡은 후에, 테두리 색깔로 glClear 하고, 다시 glScissor 를 약간 작게 잡은 후에, 제대로 glClear 하고, 이미지를 그리는 방법도 있을 겁니다. (직접 테스트 해 보지는 않았습니다.) 감사합니다.
- 0
- 1
- 82
질문&답변
2024.04.19
Warp를 동시에 돌린다는 말이 이해가 가지 않습니다.
안녕하세요. 네. 당연히 그렇게 처리 합니다. SM 1개 내의 모든 SP 들은 같은 clock 으로 동시에 실행됩니다. warp 단위로 실행 해야 하다 보니, 같은 warp 를 실행하는 32개의 SP 는 instruction 도 똑같은 것을 수행합니다. 강의에서도 한번 설명했지만, GPU 구조에서는 ALU + control unit 쪽을 줄이는 대신 갯수를 늘리는 쪽으로 설계 방향을 잡았는데, ALU 를 줄이는 데는 한계가 있고, 결국 control unit을 최대한 줄이는 방법이, 32개의 warp를 실행하는 32개의 SP가 control unit 1개의 통제를 받는 방식이고, 이러면, 이들은 동시에 똑같은 instruction을 수행하는 수 밖에 없습니다. 감사합니다.
- 0
- 1
- 136
질문&답변
2024.04.19
Thread Block 개수에 제한이 있나요?
안녕하세요. 둘다 thread block 에 대한 설명이었고, 둘다 맞는 설명입니다. kernel design 시에는 thread block 의 갯수가 거의 제한되지 않습니다. (실제로는 제한이 있지만, 매우 큰 숫자라서, 실무에서는 이쪽 제한에 걸리기 전에, memory 용량 제한 등의 다른 제한이 먼저 걸리기 때문에, 제한이 없다고 설명합니다.) 반면, 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
- 1
- 137
질문&답변
2024.04.04
#include "./common.c"오류
안녕하세요. 배포된 소스 코드의 각 파일은 내부에 #include "common.c" 를 가지고 있습니다. 즉, 컴파일 할 때, 해당 파일만 컴파일 하면 되고, common.c 가 컴파일 프로젝트에 들어가면 중복이 일어나서, 위와 같은 에러가 발생하게 됩니다. 감사합니다.
- 0
- 1
- 188