Ich arbeite mit Cloo, einer OpenCL C# -Bibliothek, und ich frage mich, wie ich am besten ermitteln kann, welches Gerät zur Laufzeit für meine Kernel verwendet wird. Was ich wirklich wissen möchte ist, wie viele Kerne ich habe (Recheneinheiten * Kerne pro Recheneinheit) auf GPUs. Wie mache ich das richtig? Ich kann derzeit Recheneinheiten und Häufigkeit bestimmen.OpenCL Auswahl des optimalen Geräts für den Durchsatz
EDIT: Ich habe versucht zu versuchen, auf allen Geräten zu profilieren (führen Sie einen Geschwindigkeitstest) und speichern/vergleichen Sie die Ergebnisse. Aber von meinem Verständnis her stellt dies auch ein Problem dar, da Sie kein Programm schreiben können, das alle Geräte optimal/fair zum Vergleich verwendet.
Dies wäre auch nützlich, um eine optimale Anzahl von Worker-Threads für jeden Kernel-Aufruf festzulegen. Jede Hilfe wird sehr geschätzt.
Wenn Sie mit C# implementieren möchten, hier ist ein guter Beitrag zum Thema: http://stackoverflow.com/questions/1542213/how-to-find-the-number-of-cpu-cores -via-net-c –
Sorry, ich war nicht konkret, ich brauche die Anzahl der Kerne auf einer GPU-Rechnereinheit, damit Environment mir leider nicht helfen wird. – guitar80