4 Fragen zu OpenCL



  • 1. Gibt es einen OpenCL Emulator?
    Also kann man OpenCL kompett auf der CPU rechnen lassen?
    Mir geht's darum, da ich ein Programm für OpenCL schreiben will, aber
    ich Zwischendurch mit einem Rechner arbeite, der keine OpenCL fähige GPU hat.

    2. Gibt es eine Art Memtest für den von OpenCL verwendeten Grafikkartenspeicher?

    3. Gibt es Programme mit dem man überprüfen kann, ob meine GPU richtig rechnet?

    4. Gibt es einen Benchmark für OpenCL mit dem ich 2 GPUs direkt vergleichen kann ohne auf die CPU angewiesen zu sein? D.h. die CPU selbst soll durchaus unterschiedlich schnell sein und nur der Performanceunterschied bei den GPUs berechnet werden.



  • OpenCL schrieb:

    1. Gibt es einen OpenCL Emulator?
    Also kann man OpenCL kompett auf der CPU rechnen lassen?
    Mir geht's darum, da ich ein Programm für OpenCL schreiben will, aber
    ich Zwischendurch mit einem Rechner arbeite, der keine OpenCL fähige GPU hat.

    es gibt keinen emulator. aber opencl laeuft ganz normal auf cpus, wie auch auf cell, powerpc, nvidia und ati gpus.

    2. Gibt es eine Art Memtest für den von OpenCL verwendeten Grafikkartenspeicher?

    ja, in den meisten SDKs ist sowas enthalten

    3. Gibt es Programme mit dem man überprüfen kann, ob meine GPU richtig rechnet?

    auch sowas hab ich schon in samples gesehen. Die cpus und gpus rechnen bei float/double innerhalb der vorgeschriebenen IEEE754 genauigkeit.

    4. Gibt es einen Benchmark für OpenCL mit dem ich 2 GPUs direkt vergleichen kann ohne auf die CPU angewiesen zu sein? D.h. die CPU selbst soll durchaus unterschiedlich schnell sein und nur der Performanceunterschied bei den GPUs berechnet werden.

    opencl laeuft so ziemlich nur auf dem selektierten client mit kaum overhead auf anderen systemen. Im neuen AMD sdk ist ein beispiel wie man durch alle vorhandenen opencl clients iterieren kann.



  • OpenCL schrieb:

    1. Gibt es einen OpenCL Emulator?
    Also kann man OpenCL kompett auf der CPU rechnen lassen?

    OpenCL ist nicht an Grafikkarten gebunden. Was du suchst ist also eigentlich gar kein Emulator, sondern eine Implementation die auf der CPU läuft. AMD hat z.B. eine Implementation die auch auf CPUs läuft. Ob die auch auf Intel CPUs läuft oder ob Intel da was eigenes hat weiß ich allerdings nicht.



  • Tobiking2 schrieb:

    OpenCL schrieb:

    1. Gibt es einen OpenCL Emulator?
    Also kann man OpenCL kompett auf der CPU rechnen lassen?

    OpenCL ist nicht an Grafikkarten gebunden. Was du suchst ist also eigentlich gar kein Emulator, sondern eine Implementation die auf der CPU läuft. AMD hat z.B. eine Implementation die auch auf CPUs läuft. Ob die auch auf Intel CPUs läuft oder ob Intel da was eigenes hat weiß ich allerdings nicht.

    Die laeuft auf allen x86 CPUs, Intel hat bisher nichts eigenes und offiziell auch nichts in planung. Die setzen noch immer auf ihre eigenen libs (ich glaube die haben nun schon 3 verschiedene).



  • rapso schrieb:

    2. Gibt es eine Art Memtest für den von OpenCL verwendeten Grafikkartenspeicher?

    ja, in den meisten SDKs ist sowas enthalten

    Gibt's das auch irgendwo im CUDA Paket von NVidia?

    Ich wollte gerade cuda_memtest-1.1 testen, aber unter Windows XP sorgt das Programm zu erheblichen Hürden es überhaupt zu compilieren.

    Zuerst mal braucht man CUDA, ok, so weit so gut, das geht ja noch.
    Dann will der nvcc unbedingt cl.exe von Visual Studio haben, also VS Command Promopt geöffent und von da gestartet.
    Aber jetzt meckert der Compiler weil er pthreads.h nicht finden kann, weil das cuda_memtest-1.1 dummerweise vorraussetzt, was es aber unter Windows out of the Box gar nicht gibt.
    Also habe ich pthreads-win32 downgeladen, aber das ist nur ein doofes ZIP Archiv. Die Dateien richtig ins System einbinden muß man alles selber und darauf hab ich jetzt echt keinen Bock mehr.
    http://sourceware.org/pthreads-win32/

    Kurz und knapp.
    Gibt es eine Alternative zu cuda_memtest-1.1?
    Es darf auch OpenCL nutzen.

    Und wenn es so einen Memtester schon im NVIDIA CUDA SDK geben soll, wie heißt das Progamm dann?



  • Memtest schrieb:

    Dann will der nvcc unbedingt cl.exe von Visual Studio haben, also VS Command Promopt geöffent und von da gestartet.

    Nachtrag:

    Ich hätte natürlich noch gcc 3.x aus dem MinGW Paket auf dem System, aber das will der nvcc natürlich nicht. <grummel>



  • Ok, das hat mich jetzt keine Ruhe gelassen und ich habe die pthreads Sachen einfach in meinen Programmordner kopiert.
    Das funktioniert jetzt.

    Aber jetzt meckert er wegen einem fehlenden unistd.h
    Das gehört natürlich auch zu Posix und gibt's bei Windows mal wieder nicht.
    Kann man dem nvcc nicht irgendwie den gcc mit dem mingw Paket beibringen, denn der gcc hätte unistd.h.


Log in to reply