Social Network

Beitrag Sticky

Aktuelle Beiträge



Random Posts

Übersetzung

Italiano flagArabo flagCinese (Semplificato) flagOlandese flagInglese flagFrancese flagTedesco flagGiapponese flagCoreano flagPolacco flagPortoghese flagRusso flagSpagnolo flagTurco flag

Kalender

August: 2009
Die M M G V S D
«Juli gesetzt "
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17. 18 19 20 21. 22. 23.
24 25 26. 27. 28. 29. 30
31.

Archiv

Kategorien

PyOpenCL und PyCUDA, OpenCL und CUDA Zugang von Python

Verfasst am: 28. August 2009. Letzte Änderung: 28. August 2009.

PyOpenCL bietet Zugriff auf die API für paralleles Rechnen von OpenCL zu Python.
Die Dokumentation der PyOpenCL ist verfügbar unter dieser Seite. Sie können aus downloaden dieser Seite.
Unten ist ein Beispiel für die Verwendung von PyOpenCL

  1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17.
 18
 19
 20
 21.
 22.
 23.
 24
 25
 26.
 27.
 28.
 29.
 30
 31.
 32
 cl import numpy import numpy. linalg as la importieren PyOpenCL als cl Import numpy Import numpy. linalg die  a ) b_buf = cl. create_host_buffer ( ctx , mf. READ_ONLY | . COPY_HOST_PTR mf, a) = cl b_buf create_host_buffer (CTX, mf READ_ONLY.. |  __kernel nichtig Summe (const float Spielrunde * a, __ global const float * b, __ global float * c) {int gid = get_global_id (0) c [gid] = a [gid] + b [gid];}  - (A + B)) 

PyCUDA bietet Zugriff auf die CUDA-API von Python. Die Dokumentation ist auf dieser Seite können Sie herunterladen von dieser Seite.
Unten ist ein Beispiel für die Verwendung von PyCUDA

  1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17.
 18
 19
 20
 21.
 22.
 23.
 24
  Import pycuda. ​​AUTOINIT
 as drv Import pycuda. ​​drv Treiber als
 Import numpy

 import SourceModule von pycuda. ​​Compiler Import SourceModule
 """ mod = SourceModule ("" " 
  __GLOBAL__ multiply_them void (float * dest, float * a, float * b) 
  { 
    const int i = threadIdx.x; 
    dest [i] = a [i] * b [i]; 
  } 
  "" ")

 "multiply_them" ) multiply_them = mod. get_function ("multiply_them")

 . randn ( 400 ) . astype ( numpy. float32 ) a = numpy. zufällig. randn (400). astype (numpy. float32)
 . randn ( 400 ) . astype ( numpy. float32 ) b = numpy. zufällig. randn (400). astype (numpy. float32)

 a ) dest = numpy. zeros_like (a)
 multiply_them (
         , drv. In ( a ) , drv. In ( b ) , drv. Out (dest), drv. In (a), drv. In (b),
         400 , 1 , 1 ) ) Block = (400, 1, 1))

 Print-dest-a * b 
Kontaktfreudig sein, Share!

Geschrieben in der Kategorie: Programmierung , Python .
Schlagwörter: , .
Kommentare


Lassen Sie eine Antwort


:alien::angel::angry::blink::blush::cheerful::cool::cwy::devil::dizzy::ermm::face::getlost::biggrin::happy::heart::kissing::lol::ninja::pinch::pouty::sad::shocked::sick::sideways::silly::sleeping::smile::tongue::unsure::w00t::wassat::whistle::wink::wub: