[xsd-users] CodeSynthesis/tree (version 4.0.0) and Nvidia NVCC compiler (CUDA version 7.0)

All Herald loredofilms1 at yahoo.com
Mon Jun 29 08:49:48 EDT 2015


We are trying to use the CodeSynthesis/tree (version 4.0.0) to generate files whose headers can be included in *.cu (CUDA) source files using the Nvidia NVCC compiler (CUDA version 7.0). The *.cu source files compile just fine, but the NVCC linker complains that that global constant memory is exhausted and therefore will not link the object files. Since only 64K of global constant memory is available, one hits this limitation very quickly. This is was run under Ubuntu 14.04.

I verified that this is the case when the *.cu files contain ONLY headers generated by the XSD executable. Each file requires its own private global constant memory until this limited resource is exhausted.
1) Is there a known workaround to fix this problem? I searched the archive and did not see anything relevant.
2) Has anyone on the list used the XSD executable with the NVCC compiler and thus can provide some tips? The issue is that we would like to use XSD as part of a  CUDA-based application but this limitation forces us to explicitly translate XSD-generated data objects into code that can be compiled under NVCC without exhausting global constant memory. As you can imagine we need to now maintain two sets of objects - huge waste.
3) Making CodeSynthesis more usable within CUDA-based applications should be valuable to many other users since virtually all computationally heavy calculations nowadays is being done using GPUs. 
4) Is there anyone with experience using both technologies who might be able to provide some assistance on this as I'm sure there are other issues with using the two technologies we have yet to uncover.  


More information about the xsd-users mailing list