묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨CUDA 프로그래밍 (6) - C/C++/GPU 병렬 컴퓨팅 - 서치 & 소트
예제 코드에 대해서 질문 드립니다.
안녕하세요!38-4 강의를 수강하고 예제 코드를 확인하는 과정에서 몇 가지 궁금증이 생겨 질문을 드립니다.kernel 함수 내 변수에서 register를 붙이시던데 이렇게 붙였을때 이점이 있을까요?두 번째 for문 같은 경우에 halfsize *= 2 이렇게 표현할 수 있는데 비트연산으로 나타 내시던데 이유를 알 수 있을까요??변수를 선언할때 unsigned 만 작성하시던데 이것도 이유가 있을까요??어찌 보면 굉장히 사소할 수 있는 질문들이지만, 그래도 이유를 알면 배울 수 있는 부분이 많을거 같아 질문 드립니다.
-
해결됨CUDA 프로그래밍 (2) - C/C++/GPU 병렬 컴퓨팅 - 벡터 vector 더하기
15강 Block ID 예제 오류 질문입니다.
안녕하세요?Jetson TX2 및 Xavier를 사용하여 CUDA예제를 실행하고 있습니다.Block 예제에서 tx2와 xavier의 결과가 달라서 질문드립니다.dimgrid<<<2,2,1>>>에 의해 Block의 갯수가 4개가 되고, warpid=0인 영역은 blockid가 (0,0), (1,0), (0,1), (1,1)인 곳에서 총 4개가 있을 것입니다.하지만 Tx2에서 예제를 돌려본 결과 blockid가 (0,0), (1,0)인 곳에만 나옵니다.혹시나 해서 xavier에서 실험을 해본 결과 총 4개가 나와 정상적으로 출력됩니다.CUDA언어는 GPU구조와 상관 없이 출력되기 위해 grid-block-thread 구조를 가지므로 속도는 느리지만 동일한 결과를 출력해야하는데, 왜 tx2와 xavier가 같은 예제를 돌렸는데도 다른 결과가 나오는걸까요? (혹시나 해서 <<<2,2,1>>> => <<<4,1,1>>>로 변경하여 돌려봤지만 여전히 tx2에서 blockid 2개만 출력되었습니다.)
-
해결됨CUDA 프로그래밍 (5) - C/C++/GPU 병렬 컴퓨팅 - 아토믹 연산 atomic op
32-2의 warp의 early terminate에 대해 질문드립니다.
안녕하세요!정말 재미있게 강의를 보고 있습니다.그런데 강의 32-2를 보다 궁금증이 생겨 질문 드립니다!warp의 early terminate가 정확히 어떤 동작인지 궁금한데요. 제가 생각해 볼 때 __syncthreads() 함수를 호출하게 되면, 블록 내 모든 스레드가 해당 함수에 도달하기까지 대기해야 하고 그러면 뒤에 더 이상의 동작이 없는 Warp들이라 하더라고 해당 함수에서 대기하고 있는 상태여야 할거 같습니다.따라서 그러면 해당 warp는 다른 warp들이 동작을 마칠때까지 기다리게 되어 리소스를 반환하거나 하는 동작이 없을거 같은데 왜이렇게 성능이 향상되는지 궁금합니다.
-
해결됨CUDA 프로그래밍 (5) - C/C++/GPU 병렬 컴퓨팅 - 아토믹 연산 atomic op
28-4 shuffle shared - shared memory 강의에서 질문이 있습니다.
안녕하세요. 강의 정말 너무 잘 보고 있습니다!! 다름이 아니라 28-4 강의를 보다 궁금하게 있어서 질문을 드립니다.even odd방식이 Half and Half 알고리즘보다 느린 이유Global Memory에서 Half and Half가 even odd보다 더 느린 이유위 두 가지 이유에 대해서는 이해가 되었지만, Shared Memory를 사용하는 부분에서 이해가 잘되지 않는 부분이 있습니다. Global Memory에서는 Memory Coalescing이 중요하기 때문에 Half and Half가 더 느린게 맞지만, Shared Memory를 사용하는 부분에서는 두 방식(even odd, Half and Half)에서 차이가 없지 않을까 하고 생각했습니다. 두 방식 모두 Global Memory에 접근하고 Write하는 로직은 같기 때문에 Shared Memory에서 성능을 저해하는 요소로는 Bank Conflict만 있다고 생각했는데, 제가 잘못 이해 하고 있는 걸까요??
-
해결됨CUDA 프로그래밍 (1) - C/C++/GPU 병렬 컴퓨팅 - CUDA 커널 kernel
에러처리 매크로에서!!
에러처리 매크로에서 exit을 하게되면 이전에디바이스나 호스트에서 동적할당했던 자원을 해제해주는건가요?? 아니면 메모리해제를 추가적으로 구현해야하나요??
-
해결됨[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
안녕하세요 ..? gpu 사용량에 대해서 질문이 있습니다.
안녕하세요 .. ? 강사님 강의 잘 듣고 있고, 정말 많이 배우고 있습니다. 자꾸 귀찮게 해드리는 것은 아닌지 죄송할 따름입니다. Oxford Pet의 dataset의 학습을 다 끝내거나, cfg와 epoch5.pth로 inference_detector로 모델을 만들어 하나의 이미지에 object detection을 수행을 끝낸 뒤에 리눅스에서 nvidia-smi로 gpu 사용량을 확인해 보면 학습 또는 object detection이 끝났음에도 gpu 사용량이 유지되는 것을 확인했습니다.(학습이 끝난 뒤에도 몇 분이 지났음에도 nvidia-smi를 눌렀을 때, 10650Mib의 사용량을 유지 했습니다.) 이 gpu 사용량이 왜 유지 되는 것인지 혹시 알 수 있을까요 .. ? 아래 사진은 object detection이 끝난 후 수분이 지났음에도 유지되는 gpu 사용량 사진입니다.
-
해결됨딥러닝 CNN 완벽 가이드 - Fundamental 편
안녕하세요.
안녕하세요. 딥러닝 CNN 완벽 가이드 - fundamental 강의를 수강하고 있는 수강생입니다. 딥러닝 학습 중 GPU 메모리 사용량에 대해서 궁금한 점이 있어 질문드립니다. 강의 중 GPU 메모리 용량 상한 때문에 training 데이터를 batch size로 나눠서 학습하신다고 하셨습니다. 그럼 batch size로 나눠서 학습을 진행하게 되면 batch size 만큼의 용량만 GPU에서 할당되어 계산되고 다음 batch 로 넘어가게 되면 GPU 메모리 사용량이 추가로 더 늘어나는게 아니고 batch size 만큼만 유지되는 건가요 ? 아니면 batch size 만큼 용량이 GPU 메모리 사용량으로 누적되면서 1 epoch 만큼의 GPU 메모리 여유분이 있어야 학습하는데 문제가 없는지요 ?