Zgodnie z dokumentacją NVidia dla cuLaunchKernel function, kernele skompilowane z CUDA 3.2+ zawierają informacje dotyczące ich listy parametrów. Czy istnieje sposób na pobieranie tych informacji programowo z uchwytu CUfunction? Muszę znać liczbę argumentów i rozmiar każdego argumentu w bajtach jądra z jego uchwytu CUfunction. Widziałem wyżej wspomnianą dokumentację NVidii mówiącą, że te informacje istnieją, ale nie widziałem nigdzie w dokumentacji CUDA wskazującej na programowy sposób dostępu do tych informacji.Jak mogę pobrać informacje o liście parametrów dla jądra CUDA 4.0+?
Aby dodać trochę więcej wyjaśnień: Pracuję z systemem middleware. Jego frontside biblioteka zastępuje libcuda (biblioteka API sterownika) w systemie docelowym. Tylna strona działa wtedy jako demon na innym hoście, który używa zasób GPGPU i wywołuje prawdziwą libcudę na tym komputerze. Istnieją inne rozwiązania middleware, które już to robią w cuLaunchKernel, więc jest to zdecydowanie możliwe. Również sama CUDA używa tych informacji, aby wiedzieć, jak analizować parametry od wskaźnika, który przekazujesz do cuLaunchKernel.
Edytuj: Pierwotnie miałem wersję CUDA, w której wprowadzone metadane zostały nieprawidłowo podane. To było 3,2, nie 4,0, zgodnie z cuLaunchKernel documentation.
CUfunction jest kernelem z prefiksem __global__. Czy potrzebujesz wielkości argumentów CUfunction? Jeśli masz jądro, możesz je znaleźć. – ahmad
Tak, potrzebuję rozmiaru jego argumentów. Nie mam źródła do jądra, tylko uchwyt do niego (prawdopodobnie wrócił z poprzedniego wywołania do cuModuleGetFunction().) W szczególności potrzebuję liczby argumentów i wielkości każdego argumentu. – reirab