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