On Mittwoch 12 August 2009, Andrew Wagner wrote: > Hi- > > Is there a way to get a list of the global variables, especially > constant arrays and texture refs that are defined in a kernel? > > I'm generating a pycuda.driver.Module from a template, and the storage > of various kernel inputs depends on the template parameters. > > It would be convenient for code using a kernel generated this way to > have some way of figuring out what global variables are defined in the > kernel, and whether they are globals, constants, or texrefs. > > Maybe in a future version of pycuda it would be nice to replace (or > provide an alternative to) the accessor functions: > > pycuda.driver.Module.get_global > pycuda.driver.Module.get_function > pycuda.driver.Module.get_texref > > that consists of having member variables: > > pycuda.driver.Module.globals > pycuda.driver.Module.functions > pycuda.driver.Module.constants > pycuda.driver.Module.texrefs > > that are already initialized to dictionaries with the name of the > variable as the key, and the handle (or maybe a (handle, size) tuple) > as the value. > > or maybe have a single member variable pycuda.driver.Module.globals > that is a dictionary with variable names as keys, and a (type, handle, > size) tuple or something similar. > > If I at least have the name of the variable I think I can deduce if > the variable is defined as a __constant__ array by wrapping > pycuda.driver.Module.get_global in a try: statement, but that's rather > un-pythonic > > Or perhaps I'm misunderstanding something and the Module.get_* > functions are forced on us by the CUDA API?
Sorry, no way to do that by the CUDA API. One could potentially parse the CUBIN file, but that's rather fragile and not something that PyCUDA engages in, so far. Andreas
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ PyCUDA mailing list [email protected] http://tiker.net/mailman/listinfo/pycuda_tiker.net
