FEHLER: pyopencl: Kontext für ein bestimmtes Gerät erstellen

Ich möchte auf meiner Plattform einen Kontext für ein bestimmtes Gerät erstellen. Aber ich bekomme einen Fehler.

Code:

import pyopencl as cl
platform = cl.get_platforms()
devices = platform[0].get_devices(cl.device_type.GPU)
ctx = cl.Context(devices[0])

Der Fehler, den ich erhalte:

Traceback (most recent call last):
  File "D:\Programming\Programs_OpenCL_Python\Matrix Multiplication\3\main3.py", line 16, in <module>
    ctx = cl.Context(devices[0])
AttributeError: 'Device' object has no attribute '__iter__'

Das Programm wird ohne Fehler und Warnungen kompiliert und ausgeführt, wenn ich Folgendes verwende:

ctx = cl.create_some_context()

Ich muss den Gerätetyp jedoch jedes Mal manuell auswählen, wenn ich das Programm mit dieser Funktion ausführe. Ich kann die folgende Umgebungsvariable einstellen

PYOPENCL_CTX='0'

Auf diese Weise kann ich keine Kontexte für verschiedene Geräte erstellen, die je nach Anforderung verfügbar sind. Es wird standardmäßig für alle Kontexte, die ich erstelle, auf Gerät 0 gesetzt.

Kann mir bitte jemand bei diesem Problem helfen.

Vielen Dank

Antworten auf die Frage(1)

Ihre Antwort auf die Frage