# CUDA-welche Programme laufen schon (GPU statt CPU)?

## Andreas O.

Hallo,

ich habe eine passiv gekühlte NVidia-Grafikkarte: "GeForce GT 520/PCI/SSE2" mit 1024 MB RAM die bereits 48 CUDA-Proz. mitbringt.

Auf der NVIDIA-Seite steht:

 *Quote:*   

> NVIDIA CUDA-fähige Proddete können zur Beschleunigung anspruchsvoller Aufgaben beitragen - von der Video- und Audiokodierung bis hin zu Öl- und Gasprospektion, Proddetdesign, medizinischer Bildgebung und wissenschaftlicher Forschung. Zahlreiche CUDA-Programme erfordern mindestens 256 MB Grafikprozessorspeicher. Prüfen Sie die Spezifikationen Ihres Systems um sicherzustellen, dass Ihr Grafikprozessor über ausreichend Speicher zum Ausführen der CUDA-Programme verfügt.

 

Dazu habe ich auch schon unzählige Artikel im Internet gegoogelt, z.B.:

http://www.tomshardware.de/CUDA-Nvidia-CPU-GPU,testberichte-240065-2.html

Leider verstehe ich nicht so ganz das "Fachchinesisch" was hier geschrieben wird.

Soweit ich mitbekommen habe, werden offiziell auch schon einige Linux-Distributionen von NVIDIA unterstützt, außer (offiziell) Gentoo.

Hier muss wohl 

```
dev-util/nvidia-cuda-sdk
```

sowie

```
dev-util/nvidia-cuda-toolkit
```

installiert werden - klappt bei mir momentan noch nicht, es beschwert sich, dass hier der ältere gcc 4.3 benötigt werde - ich komme aber hoffentlich noch auf die Lösung...

Soweit ich richtig gelesen habe, wird auch schon 

```
 media-gfx/imagemagick
```

praktisch unterstützt, ich könnte also damit schon mehrere Bilder (z.B. gescannte png-Bilder) mit Hilfe der CUDA-Proz. schneller in ein pdf umwandeln.

Was mir auch vorschwebt - meine gekauften DVDs platzsparend in xvid-codierte Filme zu speichern - gestern hatte ich mal versucht, einen 156-Minuten Film mit dvd-rip umzuwandeln-das dauerte aber mit meinen 3 CPU-Kernen soweit ich mich erinnern kann, über 3 Stunden...

Doch wie genau teile ich den jeweiligen Programmen mit, CUDA-Unterstützung mit zu kompilieren - gibt es da spezielle USE-flags wie z.B. cuda?

Oder muss ich da irgendwas selbst programmieren (was ich leider nicht kann   :Embarassed:    ) ?

Andreas

----------

## Josef.95

 *Andreas O. wrote:*   

> Doch wie genau teile ich den jeweiligen Programmen mit, CUDA-Unterstützung mit zu kompilieren - gibt es da spezielle USE-flags wie z.B. cuda?

 

Siehe zn mit 

```
euse -i cuda
```

 welche Pakete dieses Flag unterstützen.

----------

## Andreas O.

 *Josef.95 wrote:*   

> 
> 
> Siehe zn mit 
> 
> ```
> ...

 

Danke für den Tipp, scheint ja noch nicht wirklich viel zu laufen bei mir:

```
 euse -i cuda

global use flags (searching: cuda)

************************************************************

no matching entries found

local use flags (searching: cuda)

************************************************************

[-      ] cuda

    dev-util/nvidia-cuda-sdk: Build CUDA binaries.

              2.1.1215.2015 [gentoo]

              2.2 [gentoo]

              2.2-r1 [gentoo]

              2.02.0807.1535 [gentoo]

              2.3 [gentoo]

        [+ B] 3.0 [gentoo]

        [+ B] 3.0_beta1 [gentoo]

        [+ B] 3.1 [gentoo]

        [+ B] 3.2 [gentoo]

        [+ B] 4.0 [gentoo]

        [+ B] 4.1 [gentoo]

[-      ] cuda

    media-gfx/k3d: Use nvidia cuda toolkit for speeding up computations

        [-  ] 0.7.11.0-r1 [gentoo]

[-      ] cuda

    media-libs/opencv: Enable NVIDIA Cuda computations support

        [-  ] 2.3.0 [gentoo]

        [-  ] 2.3.1a [gentoo]

        [-  ] 2.3.1a-r1 [gentoo]

[-      ] cuda

    sci-chemistry/vmd: Use nvidia cuda toolkit for speeding up 

    computations

              1.8.7-r2 [gentoo]

        [-  ] 1.9 [gentoo]

[-      ] cuda

    sci-misc/boinc: Use nvidia cuda toolkit for speeding up computations. 

    NOTE: works only for subset of nvidia graphic cards so make sure your 

    card is supported before opening bug about it.

        [-  ] 6.12.42 [gentoo
```

Andreas

----------

## franzf

Die Konkurrenz-API ist opencl. Es gibt ein opencl-USE-Flag. Für opencl gibt es verschiedene Implementierungen. So gibt es eine für ati-GraKas (aktuell nur das eine über fglrx), intel hat eine geschrieben, um opencl-Code auf einer intel-CPU auszuführen (intel-ocl-sdk), und auch von nvidia gibts ne Implementierung. -> Setze das opencl-USE-Flag, eselect opencl auf nvidia setzen. So wird u.A. imagemagick durch die GPU beschleunigt, oder wine, oder oder oder  :Smile: 

----------

## yuhu

Es gibt da noch die von Intel entwickelte Schnittstelle VaAPI, welche auch auf XvBa (AMD) bzw. VDPAU (NVIDIA) als Backend zugreifen kann.

```
# euse -i vaapi

global use flags (searching: vaapi)

************************************************************

no matching entries found

local use flags (searching: vaapi)

************************************************************

[-      ] vaapi

    media-tv/xbmc: Enables VAAPI (Video Acceleration API) for hardware

    decoding

        [-  ] 10.1 [gentoo]

        [-  ] 9999 [gentoo]

[-      ] vaapi

    media-video/ffmpeg: Enables VAAPI (Video Acceleration API) for

    hardware decoding

        [-  ] 0.7.8 [gentoo]

        [-  ] 0.9.1 [gentoo]

        [-  ] 0.10 [gentoo]

        [-  ] 9999 [gentoo]

[-      ] vaapi

    media-video/hwdecode-demos: Enables VAAPI (Video Acceleration API)

    for hardware decoding

        [-  ] 0.9.5 [gentoo]

[-      ] vaapi

    media-video/libav: Enable VAAPI (Video Acceleration API) for hardware

    decoding.

        [-  ] 0.6.5 [gentoo]

        [-  ] 0.7.4 [gentoo]

        [-  ] 0.7.9999 [gentoo]

        [-  ] 0.8 [gentoo]

        [-  ] 0.8.9999 [gentoo]

        [-  ] 9999 [gentoo]

[-      ] vaapi

    media-video/vlc: Enables VAAPI (Video Acceleration API) for hardware

    decoding

        [-  ] 1.1.13 [gentoo]

        [-  ] 1.1.9999 [gentoo]

        [-  ] 2.0.0_rc1 [gentoo]

        [-  ] 2.0.9999 [gentoo]

        [-  ] 9999 [gentoo]

[-      ] vaapi

    virtual/ffmpeg: Enables VAAPI (Video Acceleration API) for hardware

    decoding

        [-  ] 0.6-r1 [gentoo]

        [-  ] 0.6.90 [gentoo]

        [-  ] 0.9 [gentoo]

[-      ] vaapi

    www-plugins/gnash: Enables VAAPI (Video Acceleration API) for

    hardware decoding

        [-  ] 0.8.8 [gentoo]

        [-  ] 0.8.9 [gentoo]

        [-  ] 0.8.9-r2 [gentoo]

```

----------

## franzf

 *yuhu wrote:*   

> Es gibt da noch die von Intel entwickelte Schnittstelle VaAPI, welche auch auf XvBa (AMD) bzw. VDPAU (NVIDIA) als Backend zugreifen kann.

 

vaapi ist aber nur zur Videoausgabe zu gebrauchen, zum encoding oder Programm beschleunigen hilft das nichts.

Auf den SandyBridge-CPUs säße theoretisch ein eigener Chip, der sich nur um transcoding kümmert (->Intel QuickSync). Leider gibts das bis jetzt nur unter Windows. Hoffentlich wird sich das mit der Verfügbarkeit von IvyBridge ändern, so dass QuickSync auch unter Linux nutzbar wird.

----------

