Files

When the specification-file has been constructed, it will be fed to HyCuda as its first input argument. HyCuda can be called from the commandline, expecting the following syntax:
    hycuda spec-file [options]
When HyCuda is called without any options, the files listed below are generated in the current directory, where X denotes the class-name as specified in the specification (all lowercase).

    X.h                    
    X_algorithm.h       
    X_cudastopwatch.cuh    X_cudastopwatch.ih   X_cudastopwatch.cu  
    X_default_base.h
    X_default_cpu.h        X_default_cpu.ih     X_default_cpu_impl.cc  
    X_default_gpu.h        X_default_gpu.ih     X_default_gpu_impl.cu  
    X_devicepolicies.h     
    X_hybrid.h             
    X_inputpolicy.h        X_inputpolicy.ih     X_inputpolicy_impl.cc  
    X_kernels.h            X_kernels.cu					
    X_memory.h             X_memory.ih          X_memory.cu / X_memory.cc            
    X_stopwatch.h
    X_timer.h              X_timer.ih           X_timer.cc            

    Makefile
There exist many common source-file-extensions in the world of C++; .cpp, .cc, .cxx or .C for source-files and .h or .hpp for header-files. In addition to the familiar source- and header-files, for which I have chosen the .cc and .h extension, there are a few other extensions visible in the list of files above. The uncommon .ih-files are so-called implementation headers, which should by convention only be included by source-files. The purpose of these implementation headers is to include other headers that are only needed by the implementation, or contain using-directives (e.g. using namespace std;) for convenience of the programmer.

The CUDA sources have the .cu extension, and header-files that are exclusively seen by the CUDA compiler (nvcc) have the .cuh extension. Even though these are a lot of files, the user will only have to be familiar with a few to be able to implement his own algorithm (Section 3.3.

Joren Heit 2013-12-17