In base alla documentazione NVidia per il cuLaunchKernel function, i kernel compilati con CUDA 3.2+ contengono informazioni relative all'elenco dei parametri. C'è un modo per recuperare queste informazioni a livello di codice da un handle CUfunction? Ho bisogno di conoscere il numero di argomenti e la dimensione di ogni argomento in byte di un kernel dal suo handle CUfunction. Ho visto la documentazione NVidia di cui sopra che afferma che questa informazione esiste, ma non ho visto da nessuna parte nella documentazione CUDA che indica un modo programmatico per accedere a queste informazioni.Come posso recuperare le informazioni sull'elenco dei parametri per un kernel CUDA 4.0+?
Per aggiungere ulteriori spiegazioni: sto lavorando con un sistema middleware. La sua libreria frontside sostituisce libcuda (la libreria API del driver) sul sistema di destinazione. La parte posteriore viene quindi eseguita come daemon su un altro host che utilizza la risorsa GPGPU e chiama la vera libcuda su quella macchina. Esistono altre soluzioni middleware che già fanno questo con cuLaunchKernel, quindi è sicuramente possibile. Inoltre, CUDA stesso usa queste informazioni per sapere come analizzare i parametri dal puntatore che passi in cuLaunchKernel.
Modifica: Originariamente avevo la versione CUDA in cui sono stati introdotti questi metadati elencati in modo errato. Era 3.2, non 4.0, secondo lo cuLaunchKernel documentation.
CUfunction è il kernel, preceduto da __global__. Hai bisogno della dimensione degli argomenti di CUfunction? Se hai il kernel puoi trovarlo. – ahmad
Sì, ho bisogno della dimensione dei suoi argomenti. Non ho la sorgente del kernel, solo un handle (presumibilmente restituito da una precedente chiamata a cuModuleGetFunction()). In particolare, ho bisogno del numero di argomenti e della dimensione di ogni argomento. – reirab