Python 은 pyCUDA 를 바탕 으로 GPU 가속 병행 컴 퓨 팅 기능 입문 튜 토리 얼 을 실현 합 니 다.

이 사례 는 Python 이 pyCUDA 를 바탕 으로 GPU 가속 병행 컴 퓨 팅 기능 을 실현 하 는 것 을 다 루 었 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
Nvidia 의 CUDA 구 조 는 우리 에 게 GPU 를 직접 조작 하고 프로 그래 밍 하 는 편리 한 방식 을 제공 해 주 었 으 나 C 언어 를 바탕 으로 하 는 CUDA 의 실현 은 비교적 복잡 하고 개발 주기 가 비교적 길다.한편,python 은 광범 위 하 게 사용 되 는 언어 로 서 간단 하고 배우 기 쉬 우 며 문법 이 간단 하고 개발 이 빠르다 는 장점 을 가진다.네 번 째 CUDA 지원 언어 로 서 python 은 반드시 고성능 컴 퓨 팅 에 뛰어난 공헌 을 할 것 이 라 고 믿 습 니 다.

pyCUDA 특징
  • CUDA 의 완전한 python 실현
  • 인 코딩 이 더욱 유연 하고 신속 하 며 자가 적응 조절 코드
  • 더 좋 은 노 봉 성,목표 의 생명주기 와 오류 검출 자동 관리
  • GPU 기반 의 선형 대수 라 이브 러 리,reduction,scan 을 포함 하여 빠 른 푸 리 엽 변환 패키지 와 선형 대수 패키지 LAPACK
  • 을 추가 합 니 다.
  • 완전한 도움말 문서Wiki
  • pyCUDA 작업 절차
    구체 적 인 호출 절 차 는 다음 과 같다.

    기본 예 호출
    
    import pycuda.autoinit
    import pycuda.driver as drv
    import numpy
    from pycuda.compiler import SourceModule
    mod = SourceModule("""
    __global__ void multiply_them(float *dest, float *a, float *b)
    {
     const int i = threadIdx.x;
     dest[i] = a[i] * b[i];
    }
    """)
    multiply_them = mod.get_function("multiply_them")
    a = numpy.random.randn(400).astype(numpy.float32)
    b = numpy.random.randn(400).astype(numpy.float32)
    dest = numpy.zeros_like(a)
    multiply_them(
      drv.Out(dest), drv.In(a), drv.In(b),
      block=(400,1,1), grid=(1,1))
    print dest-a*b
    #tips: copy from hello_gpu.py in the package.
    
    
    구체 적 인 내용
  • 장치 상호작용
  • Profiler Control
  • 동적 컴 파일
  • OpenGL 상호작용
  • GPU 배열
  • 프로 그래 밍 기술
  • 추가 내용:
    GPU 가속 python 에는 이미 지 를 처리 하 는 python GPU 가속 패키지 등 기능 패키지 도 있 습 니 다.pyGPU
    그리고 전문 적 인 GPU 가속 python 기계 학습 패키지-scikitCUDA
    Matlab 에 대응 하 는 공구 꾸러미 병행계산 도구 상자GPU 컴 퓨 팅 기술
    그리고튜 토리 얼문서 소개
    더 많은 파 이 썬 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
    본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

    좋은 웹페이지 즐겨찾기