[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