CL_INVALID_WORK_GROUP_SIZE Fehler

8

Ich habe diesen Code, für den ich schon vor einiger Zeit etwas gepostet habe.

Heute habe ich meinen Kernel mit einer typedef-Struktur in einem kleinen Testprogramm laufen lassen, aber clEnqueueNDRangeKernel gibt einen ungültigen Arbeitsgruppenseitenfehler aus. Dies kann laut der khronos webiste 3 Ursachen haben.

  1. Die globale Arbeitsgröße ist nicht durch die lokale Arbeitsgröße teilbar. In meinem Code ist es teilbar.
  2. Die lokale Arbeitsgröße ist größer als die GPU verarbeiten kann. Meine lokale Arbeitsbreite liegt bei 128, also unter dem angegebenen Maximum von 1024.
  3. Etwas mit der lokalen Arbeitsgröße zu tun, die NULL ist. Meine lokale Arbeitsgröße ist nicht NULL , es ist 128.

Ich habe das Internet für einige Stunden durchsucht, und die meisten Lösungen, die ich gefunden habe, beziehen sich auf clGetKernelWorkGroupInfo für die maximale lokale Arbeitsgröße. Wenn ich das mache, meldet es auch 1024. Ich habe jetzt wirklich keine Optionen mehr, kann mir jemand helfen? :)

main: Ссылка kernel: Ссылка

    
JustAJ 03.11.2011, 14:26
quelle

1 Antwort

6

Von Ihrem Pastebin-Link sehe ich:

%Vor%

Das bedeutet, dass Sie versuchen, Ihren Kernel mit einer globalen Größe von 16 und einer lokalen Größe von 128 in die Warteschlange zu stellen. Das ist fast sicher nicht das, was Sie wollen. Denken Sie daran, globale Größe ist die Gesamtzahl der Arbeitselemente, die Sie ausführen möchten, und lokale Größe ist die Größe jeder Arbeitsgruppe. Wenn Sie beispielsweise eine globale Größe von 1024 x 1024 und eine lokale Größe von 16 x 16 haben, verfügen Sie über 4096 Arbeitsgruppen mit jeweils 256 Arbeitsaufgaben. Dies kann oder kann nicht gültig sein, abhängig von Ihrem Computer-Gerät.

Im Hinblick auf die Übergabe einer lokalen NULL-Größe: Die CL-Spezifikation besagt, dass die CL-Implementierung was auch immer sie möchte als lokale Arbeitsgruppengröße auswählen kann. Idealerweise wird es versuchen, etwas Cleveres für Sie zu tun, aber Sie haben keine Garantien.

    
James 03.11.2011, 16:26
quelle

Tags und Links