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

Boris Kolpackov boris at codesynthesis.com
Tue Jul 21 12:54:46 EDT 2015


Hi All,

Thanks for the analysis.

All Herald <loredofilms1 at yahoo.com> writes:

> The short answer is that I really don't know what is causing it.  Basically
> when I include the *.hxx header files generated by CodeSynthesis from XSD
> schemas in *.cu source code to be compiled and linked under nvcc that is
> when the problem occurs. The nvcc compiler sets aside device-side storage in
> cuda global constant memory for every *.cu source file in which *.hxx files
> are included, and additional memory is required for each source file.  The
> nvcc linker will fail whenever the cumulative global constant memory exceeds
> 64K bytes and this limits the number of source files. The header file size
> does not matter. If I take a very small header and include it many times it
> fails. If I take a larger header and include it just a few times it also
> fails.

While this sounds totally brain-dead to me, perhaps there is a simple
solution: take all the generated headers that you are interested in
using, include them into a single header file, and run the pre-processor
on it. This will give you a single (and massive) header without any
includes that you can then try to include into your .cu files.


> I realize that this is a bug in the NVCC compiler and not a
> limitation of CodeSynthesis ... but modifying CodeSynthesis might
> be the easiest way to resolve the problem. Every compiler has its
> unique quirks...

I don't mind adding work-arounds to XSD as long as they don't make
the code unmaintainable. At this stage, we don't even know what they
are.

Boris



More information about the xsd-users mailing list