2014-09-17 3 views
8

현재 기계 학습 알고리즘의 성능을 향상시키기 위해 GPU 프로그래밍을 배우고 있습니다. 처음에 나는 순수한 C와 CUDA 프로그래밍을 배우려고, 나는 나에게 CUDA 라이브러리의 래퍼를 pycuda하는 발견하고 나는 theano 및 pylearn2 발견하고 혼란 조금 가지고 :이 방법으로 그들을 이해pycuda vs theano vs pylearn2

:

  1. pycuda : CUDA 라이브러리에 대한 파이썬 래퍼
  2. theano : GPU와 CPU에 NumPy와 유사하지만 투명
  3. pylearn2 : theano에 구축하고 여러 기계 학습/깊은 학습 모델을 구현 깊은 학습 패키지

GPU 프로그래밍에 익숙하지 않으므로 C/C++ 구현에서 배우기 시작하거나 pycuda에서 시작하는 것이 theano에서 시작하는 것으로 충분합니까? 예 : GPU 프로그래밍을 배운 후 randomForest 모델을 구현하고 싶습니다. 감사합니다.

답변

8

귀하의 이해가 거의 옳습니다. 나는 Theano에 대해 약간의 발언을 덧붙일 것이다. 그것은 GPU에서 실행할 수있는 Numpy 이상입니다. Theano는 실제로 CPU 및 GPU 모두를 대상으로 고도로 최적화 된 C/CUDA 코드에서 기호식 표현을 변환하는 수학 표현식 컴파일러입니다. 생성하는 코드는 프로그래머가 작성하는 코드보다 훨씬 효율적입니다. Theano는 또한 상징적 인 차별화 (그라디언트 기반 최적화에 매우 유용함)와 더 나은 수치 안정성을 제공하는 기능을 제공합니다. (어느 정도 유용할지 모르지만 실제로 유용합니다.) Theano가 필요한 것을 구현하기에 충분할 것 같습니다. 여전히 CUDA 또는 PyCUDA를 배우기로 결정했다면, 사용할 언어가없는 C++ 또는 Python을 선택하십시오.

+0

매우 명확합니다. 감사합니다. 한 가지 더 질문하지만 아마도 여기에 물어보기에 적당하지 않을 것입니다. R 언어로 theano와 비슷한 패키지가 있습니까? – user1754197

+0

아닙니다. 기본적인 선형 대수 연산과 좀 더 높은 수준의 함수 (lm)를 구현하는 패키지가 몇 개 있지만, Theano에서는 Theano와 완전히 다른 방식으로 작동합니다. 즉 정규 패키지 일 뿐이며 표현 컴파일러가 아닙니다. –

+0

pylearn2에 대한 의견이 있으십니까? –