2014-07-15 4 views
3

저는 현재 줄리아 언어에 놀라며, 현재의 프로젝트에서 알고리즘을 학습하는 많은 기계를 구현했습니다. julia 0.2가 비슷한 Linux 하드웨어의 다른 모든 솔루션보다 뛰어난 2011 년 MBA에서 훌륭한 결과를 얻지 만 (vecLib blas로 인해) 나는 분명 더 많은 것을 원할 것입니다. 나는 radeon 5870을 구입하는 과정에 있으며 매트릭스 작업을 여기에 밀어 넣고 싶습니다. 기본적으로 matmul, additios 및 transpositions와 같은 간단한 BLAS 연산 만 사용합니다. 나는 줄리아의 콤팩트 한 구문 A '* B + C를 사용하고 확실히 그것을 지키고 싶습니다.OpenCL BLAS in julia

기본 작업을 GPU에서 실행할 수있는 방법이 있습니까? 나는 2500x2500 단 정밀도 행렬을 가지고 있으므로 상당한 속도 향상을 기대합니다.

답변

4

저는 이번에 Julia 코어에 GPU 통합이 계획되어 있다고 생각하지 않습니다. 핵심 쟁점 중 하나는 데이터를 GPU로 전송하거나 GPU에서 이동시키는 상당한 오버 헤드가있어 BLAS 작동을 드롭 인으로 대체 할 수 없다는 것입니다.

이 분야의 대부분의 진전은 실제로 패키지 생태계, 특히 JuliaGPU 조직의 패키지에서 비롯된 것으로 예상됩니다. 거기에 CLBLAS 패키지가 있습니다.

+0

예, CLBlas를 보았습니다. 그러나 줄리아의 주된 조언 중 하나는 그녀의 깨끗한 구문입니다. C 또는 포트란에서 OpenCL을 사용할 수 있지만 재미는 없습니다. CLBlas와 같은 라이브러리는 불분명 한 구문을 추가하며 이것은 끔찍한 것입니다. 나는 이것이 알아낼 수 있다고 확신하지만, 아직 그렇게되지 않았 음을 슬프다. – Terminus

+0

두 번째 생각에, 어쩌면 매크로로 일부 구문 추잡함을 숨길 수 있습니다 ...하지만 여전히, 선형 수준의 대수학 방법을 대체하는 것이 훨씬 낫습니다. – Terminus

+0

다른 언어에서도 사용할 수있는 BLAS 라이브러리가 있습니다. 따라서 Julia가 이러한 언어와 상호 운용 할 수 있으면 액세스 할 수 있어야합니다. Julia를 모르지만 연산자 오버로딩과 같은 것이 있으면 멋진 구문으로 외부 라이브러리를 래핑 할 수 있어야합니다. – Dithermaster