1 // =============================================================================
2 // === GPUQREngine/Include/GPUQREngine_internal.hpp ============================
3 // =============================================================================
4 //
5 // The GPUQREngine_internal is an internal global include file.
6 //
7 // =============================================================================
8 
9 #ifndef GPUQRENGINE_INTERNAL_HPP
10 #define GPUQRENGINE_INTERNAL_HPP
11 
12 #include "GPUQREngine_Common.hpp"
13 #include "GPUQREngine_TaskDescriptor.hpp"
14 #include "GPUQREngine_Front.hpp"
15 #include "GPUQREngine_Stats.hpp"
16 #include "GPUQREngine.hpp"
17 
18 void GPUQREngine_UberKernel
19 (
20     cudaStream_t kernelStream,      // The stream on which to launch the kernel
21     TaskDescriptor *gpuWorkQueue,   // The list of work items for the GPU
22     int numTasks                    // The # of items in the work list
23 );
24 
25 QREngineResultCode GPUQREngine_Internal
26 (
27     size_t gpuMemorySize,           // The total size of the GPU memory
28     Front *fronts,                  // The list of fronts to factorize
29     Int numFronts,                  // The number of fronts in the list
30     Int *Parent = NULL,             // Map from front to its Parent
31     Int *Childp = NULL,             // Child[Childp[f]] to Child[Childp[f+1]]
32     Int *Child  = NULL,             // has all the children of front f.
33     QREngineStats *stats = NULL     // An optional in-out parameter to capture
34                                     // statistics
35 );
36 
37 #endif
38