Please always provide the following system configuration information when asking about OptiX issues:
OS version, installed GPU(s), VRAM amount, display driver version, OptiX major.minor.micro version, CUDA toolkit version used to generate the input PTX, host compiler version.
What streaming multiprocessor version did you target during the compilation (e.g. SM 3.0)?
How big are the “huge” files in code lines or bytes?
What’s in them?
What’s the reason you need to split them?
Does it work when not splitting them?
One simple approach would be to put each program (ray generation, any hit, closest hit, miss, exception, callables) into separate *.cu file per domain or even per individual program.
E.g. like this: https://github.com/nvpro-samples/optix_advanced_samples/tree/master/src/optixIntroduction/optixIntro_07/shaders
If that is still huge for individual programs, you need to work on your program architecture.