본문 바로가기

CUDA

After Bulldozer : 업체들의 만화경(萬華鏡) 10월 12일로 출시가 결정된 AMD 불도저 8150P의 성능은 대략적으로 i5 2500에 근접하는 것 같다. 안타깝지만 불도저는 애초에 기대했던 성능과는 다소 거리가 있으며, 가격 대 성능비로 승부해야 할 것 같다. AMD는 초기 불도저는 확실히 기대 이하라고 판단하고 있으며, 가급적 빨리 불도저 아키텍처를 개선한 파일드라이버(piledriver) 아키텍처로 넘어가려는 듯 하다. 즉, 시장에는 8150P와 같은 플래그쉽 모델만 풀릴 가능성이 높으며, 메인스트림급은 파일드라이버 아키텍처가 처음 적용되는 APU 트리니티(Trinity)에 집중할 가능성이 높다. 여기에 몇 가지 변수가 더해져 기대해 볼만한 부분이 생겼다. 무엇보다, AMD는 전통적으로 소프트웨어 지원이 만족스럽지 못했지만, 트리니티에 이르러.. 더보기
쿠다(CUDA)의 미래는 밝지 않다 쿠다(CUDA)는 한때의 괜찮았던 기술로 끝날 것인가? 이 질문에 대한 답은 쉽지 않다. 그러나, 과감하게 생각해본다면 쿠다의 미래는 그다지 밝지 않다. 쿠다를 다루어보면 2가지 면에서 놀라게 되는데, 엄청난 처리 속도 때문에 첫번째로 놀라게 되며, 본격적으로 쿠다를 이용한 프로그래밍을 할 때 그 지옥같은 디버깅에 두번째로 놀라게 된다. 쿠다의 프로그래밍 모델 그 자체는 그렇게 난해하지는 않다. 그러나, GPU라는 태생적인 한계 때문에 CPU와 다른 메모리 공간을 사용한다. 커널(kernel, 쿠다에서 많은 수의 스레드를 동시에 동작시키는 함수를 뜻한다) 안의 어떤 변수 값을 살펴보려면, 그 값을 호스트 메모리에 복사해서 봐야 하며, 때로는 코드의 문맥상 이것이 불가능할 때도 있다. 즉, CPU와 GPU.. 더보기
32 / 64비트 CUDA 툴킷 같이 사용하기 CUDA 툴킷(toolkit)은 32비트, 64비트로 나뉘어서 배포되는데, 64비트 패키지에는 32비트 바이너리를 제공하지 않는다. 예를 들어, 64비트 툴킷을 설치했다면 32비트 프로그램을 빌드하고 싶어도 라이브러리 링크 문제 때문에 빌드가 불가능하다는 뜻이다. CUDA 툴킷이 설치된 폴더를 살펴보면 bin, bin64, lib, lib64 따위로 구분이 되어 있음에도 불구하고 이렇게 불편하게 만들어 놓은 것은 쉽게 이해가지 않는다. 그러나, 실제로는 32비트, 64비트 CUDA 툴킷을 한 폴더에 설치해도 문제는 없다. 직접적으로 설치 파일을 실행하여 두 패키지를 모두 설치하려고 하면 설치 프로그램이 이를 감지하여 하나를 제거하지만, 수동으로 필요한 파일들을 해당 폴더에 복사해도 상관없다. 복사해야 하.. 더보기
CUDA 2.3 Build Environment Setup CUDA 프로그래밍은 시작부터 험난하다. 가장 큰 이유는, NVIDIA의 GPU가 계속해서 변하고 있기 때문이다. 그래서 CUDA에 대해 체계적으로 설명한 문서가 없고, 그나마 대부분 CUDA 2.2에 대해서 설명되어 있다. 그래도, CUDA를 사용하기로 마음 먹었다면, 무엇보다 NVIDIA에서 지원하는 문서들을 모두 읽어보기 바란다. 다른 경우라면 흔히 넘어가는 릴리즈 노트도 매우 중요하다. CUDA 프로그래밍을 하려면, 자신의 GPU가 CUDA를 지원하는지 여부를 알아보고 CUDA Toolkit과 SDK를 설치해야 한다. CUDA 2.3 SDK를 설치하면 비스타 이상에서는 ProgramData 폴더 밑에 설치되는데, 이것은 시스템 폴더라 일반적인 경우 접근하기 쉽지 않다는 문제가 있다. CUDA SD.. 더보기