2008-10-17 4 views
21

나는 얼랑 (Erlang)으로 작성된 신경망을 가지고 있으며, 방금 240 코어 GPU가 장착 된 지포스 GTX 260 카드를 구입했습니다. 그래픽 카드에서 이것을 실행하려면 접착제로 CUDA을 사용하는 것이 쉬운가요?이미 작성된 동시 프로그램을 GPU 배열에서 실행하려면 어떻게합니까?

+0

멋진 질문, 당신은 얼랑 사회에서이 문제를 제기 고려할 수 있습니다를, 그것은 얼랑 일부 진정으로 놀라운 변화를 영감을 수도 있습니다! :-) – none

+1

@none : 나는 그것을 의심합니다. erlang 동시성 모델은 CUDA 또는 OpenCL 사용과 같은 동시성 모델 언어와 잘 일치하지 않습니다. 나는 (아직 미발표이지만) erlang을위한 openCL 바인딩을 작성하기위한 노력을 기울 였지만, 지금 당장 볼 수있는 유일한 실제 어플리케이션은 빠른 매트릭스 변환과 같은 일을하는 것입니다. – Amadiro

답변

16

아니요. CUDA를 사용하는 것은 사소한 일이 아닙니다.

CUDA 프로그래밍 모델은 기본적으로 C (일부 추가됨)를 사용하지만 GPGPU의 기능을 최대한 활용하려면 알고리즘이 CUDA 가이드 라인을 준수하는지 확인해야합니다. (NVidia CUDA Programming Guide 참조)

예를 들어 최적의 메모리 성능 (약 70Gbps 정도)을 얻으려면 병합으로 스트리밍 모드로 메모리에 액세스해야하며, GPU에는 지점이 너무 많이 들어가므로 조건부 코드를 가능한. SDK와 함께 제공되는 가이드 및 샘플을 확인하면 훌륭한 출발점이됩니다.

+0

그래, 그게 많은 일. 중요한 스피드 업을 얻으려면 데이터를 정렬하는 방법과 전술 한 반 - 워프 및 통합의 개념을 이해해야합니다. 또한 GPU 시리즈에 따라 대상 기계 코드가 변경됩니다. – Sushant

3

얼랭으로 어떻게 할 수 있는지 알려주시겠습니까?하지만 적어도 MS에서 Satnam Singh 연구는 하스켈 (용암)과 F #으로 아주 흥미로운 작업을했습니다. 아마이 글이 당신에게이 할 수있는 방법에 대한 몇 가지 직관 제공 할 수 있습니다 :

http://research.microsoft.com/en-us/people/satnams/

+1

깨진 링크. Satnam의 홈페이지는 여기에 있습니다 : http://research.microsoft.com/en-us/people/satnams/ –

관련 문제