CUDA 3

tensorflow + anaconda2 + cuda 설치(노트북 사용)

예전에 tensorflow 를 처음 사용할 때, 리눅스 설치때문에 엄청나게 고생했었던 기억이 있다. 특히나 CUDA를 사용하는 부분에서, 노트북(GT 650M 사용)이 개발환경이다보니 일반적인 설치파일을 그냥 다운받는 것으로는 문제가 있어 많은 시간이 소모되었었는데, 얼마 전에 Ubuntu 16.04 버전으로 버전업하고, 그때의 과정을 되풀이 했는데, 너무나 쉽게 되었다. 1. Ubuntu 16.04 버전 설치 2. 그래픽카드 드라이버 설치 sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get install nvidia-370 설치 이후 재부팅하여, nvidia-settings 로 정상 설치 확인 3. CUDA 설치 sudo apt-get inst..

Research/Others.. 2016.10.06

SGA using CUDA

이전에 간단하게 만들어두었던 SGA의 Fitness Evaluation 동작만을 CUDA 에서 실행하는 코드 난 지금까지 이걸 올렸다고 생각하고 있었는데, 다시보니 그게 아니었다. 이건 뭐 XX도 아니고...;; (*) 일단 코드는 최적화는 전혀 되어 있지 않은 상태이며, 오히려 기본 GA보다도 Evaluation 성능이 떨어질 수 있다. 컴파일 환경은 쓰고싶은대로 아무거나 써도 이상이 없을 코드이며, 이전엔 Visual Studio 2008 에서 작업했었다. CUDA에 대해서 가장 기본적인 코드라고 생각해도 될 코드이기때문에 혹시라도 이런 종류의 알고리즘을 다뤄보고 싶으신분은 살펴보면 좋을 것 같다.

CUDA Programming

병렬처리는 결국 필수 불가결한 요소가 될 것임에는 분명하다. 확실히 단일 코어 발전 대비 성능 비율이 언젠가부터 매우 낮아진다는 것을 확인할 수 있다. CPU 를 듀얼 혹은 쿼드로 쓰는 것도 꽤 매리트가 있지만, 알고리즘을 연구하는 사람으로써 그런 한 두개의 병렬을 가지고 큰 효과를 보기에는 그 한계가 명확하다. 결국 요래저래 살펴보다가 또다시 GPU 쪽으로 눈이 돌아가게 되었는데, 그 당시에는 그렇게 어렵게만 느껴지던 CUDA 라는 것이 그렇게 어려운 녀석이 아니었다. 일련의 흐름에 따라서 프로그래밍을 하면 되는데, 1. 디바이스의 초기화 2. GPU 상의 메모리 할당 ( cudaMalloc ) 3. CPU 상에서 GPU 상으로 처리할 내용을 복사 ( cudaMemcpy ) 4. 커널을 수행함으로써 원..