@@ -182,24 +182,17 @@ static int CeedBasisApplyAtPointsCore_Cuda(CeedBasis basis, bool apply_add, cons
182182 }
183183
184184 // -- Compile kernels
185- char * basis_kernel_source ;
186- const char * basis_kernel_path ;
187- CeedInt num_comp ;
185+ const char basis_kernel_source [] = "// AtPoints basis source\n#include <ceed/jit-source/cuda/cuda-ref-basis-tensor-at-points.h>\n" ;
186+ CeedInt num_comp ;
188187
189188 if (data -> moduleAtPoints ) CeedCallCuda (ceed , cuModuleUnload (data -> moduleAtPoints ));
190189 CeedCallBackend (CeedBasisGetNumComponents (basis , & num_comp ));
191- CeedCallBackend (CeedGetJitAbsolutePath (ceed , "ceed/jit-source/cuda/cuda-ref-basis-tensor-at-points.h" , & basis_kernel_path ));
192- CeedDebug256 (ceed , CEED_DEBUG_COLOR_SUCCESS , "----- Loading Basis Kernel Source -----\n" );
193- CeedCallBackend (CeedLoadSourceToBuffer (ceed , basis_kernel_path , & basis_kernel_source ));
194- CeedDebug256 (ceed , CEED_DEBUG_COLOR_SUCCESS , "----- Loading Basis Kernel Source Complete! -----\n" );
195190 CeedCallBackend (CeedCompile_Cuda (ceed , basis_kernel_source , & data -> moduleAtPoints , 9 , "BASIS_Q_1D" , Q_1d , "BASIS_P_1D" , P_1d , "BASIS_BUF_LEN" ,
196191 Q_1d * CeedIntPow (Q_1d > P_1d ? Q_1d : P_1d , dim - 1 ), "BASIS_DIM" , dim , "BASIS_NUM_COMP" , num_comp ,
197192 "BASIS_NUM_NODES" , CeedIntPow (P_1d , dim ), "BASIS_NUM_QPTS" , CeedIntPow (Q_1d , dim ), "BASIS_NUM_PTS" ,
198193 max_num_points , "POINTS_BUFF_LEN" , CeedIntPow (Q_1d , dim - 1 )));
199194 CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> moduleAtPoints , "InterpAtPoints" , & data -> InterpAtPoints ));
200195 CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> moduleAtPoints , "GradAtPoints" , & data -> GradAtPoints ));
201- CeedCallBackend (CeedFree (& basis_kernel_path ));
202- CeedCallBackend (CeedFree (& basis_kernel_source ));
203196 }
204197
205198 // Get read/write access to u, v
@@ -419,8 +412,6 @@ static int CeedBasisDestroyNonTensor_Cuda(CeedBasis basis) {
419412int CeedBasisCreateTensorH1_Cuda (CeedInt dim , CeedInt P_1d , CeedInt Q_1d , const CeedScalar * interp_1d , const CeedScalar * grad_1d ,
420413 const CeedScalar * q_ref_1d , const CeedScalar * q_weight_1d , CeedBasis basis ) {
421414 Ceed ceed ;
422- char * basis_kernel_source ;
423- const char * basis_kernel_path ;
424415 CeedInt num_comp ;
425416 const CeedInt q_bytes = Q_1d * sizeof (CeedScalar );
426417 const CeedInt interp_bytes = q_bytes * P_1d ;
@@ -440,19 +431,15 @@ int CeedBasisCreateTensorH1_Cuda(CeedInt dim, CeedInt P_1d, CeedInt Q_1d, const
440431 CeedCallCuda (ceed , cudaMemcpy (data -> d_grad_1d , grad_1d , interp_bytes , cudaMemcpyHostToDevice ));
441432
442433 // Compile basis kernels
434+ const char basis_kernel_source [] = "// Tensor basis source\n#include <ceed/jit-source/cuda/cuda-ref-basis-tensor.h>\n" ;
435+
443436 CeedCallBackend (CeedBasisGetNumComponents (basis , & num_comp ));
444- CeedCallBackend (CeedGetJitAbsolutePath (ceed , "ceed/jit-source/cuda/cuda-ref-basis-tensor.h" , & basis_kernel_path ));
445- CeedDebug256 (ceed , CEED_DEBUG_COLOR_SUCCESS , "----- Loading Basis Kernel Source -----\n" );
446- CeedCallBackend (CeedLoadSourceToBuffer (ceed , basis_kernel_path , & basis_kernel_source ));
447- CeedDebug256 (ceed , CEED_DEBUG_COLOR_SUCCESS , "----- Loading Basis Kernel Source Complete! -----\n" );
448437 CeedCallBackend (CeedCompile_Cuda (ceed , basis_kernel_source , & data -> module , 7 , "BASIS_Q_1D" , Q_1d , "BASIS_P_1D" , P_1d , "BASIS_BUF_LEN" ,
449438 Q_1d * CeedIntPow (Q_1d > P_1d ? Q_1d : P_1d , dim - 1 ), "BASIS_DIM" , dim , "BASIS_NUM_COMP" , num_comp ,
450439 "BASIS_NUM_NODES" , CeedIntPow (P_1d , dim ), "BASIS_NUM_QPTS" , CeedIntPow (Q_1d , dim )));
451440 CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Interp" , & data -> Interp ));
452441 CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Grad" , & data -> Grad ));
453442 CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Weight" , & data -> Weight ));
454- CeedCallBackend (CeedFree (& basis_kernel_path ));
455- CeedCallBackend (CeedFree (& basis_kernel_source ));
456443
457444 CeedCallBackend (CeedBasisSetData (basis , data ));
458445
@@ -471,8 +458,6 @@ int CeedBasisCreateTensorH1_Cuda(CeedInt dim, CeedInt P_1d, CeedInt Q_1d, const
471458int CeedBasisCreateH1_Cuda (CeedElemTopology topo , CeedInt dim , CeedInt num_nodes , CeedInt num_qpts , const CeedScalar * interp , const CeedScalar * grad ,
472459 const CeedScalar * q_ref , const CeedScalar * q_weight , CeedBasis basis ) {
473460 Ceed ceed ;
474- char * basis_kernel_source ;
475- const char * basis_kernel_path ;
476461 CeedInt num_comp , q_comp_interp , q_comp_grad ;
477462 const CeedInt q_bytes = num_qpts * sizeof (CeedScalar );
478463 CeedBasisNonTensor_Cuda * data ;
@@ -501,20 +486,16 @@ int CeedBasisCreateH1_Cuda(CeedElemTopology topo, CeedInt dim, CeedInt num_nodes
501486 }
502487
503488 // Compile basis kernels
489+ const char basis_kernel_source [] = "// Nontensor basis source\n#include <ceed/jit-source/cuda/cuda-ref-basis-nontensor.h>\n" ;
490+
504491 CeedCallBackend (CeedBasisGetNumComponents (basis , & num_comp ));
505- CeedCallBackend (CeedGetJitAbsolutePath (ceed , "ceed/jit-source/cuda/cuda-ref-basis-nontensor.h" , & basis_kernel_path ));
506- CeedDebug256 (ceed , CEED_DEBUG_COLOR_SUCCESS , "----- Loading Basis Kernel Source -----\n" );
507- CeedCallBackend (CeedLoadSourceToBuffer (ceed , basis_kernel_path , & basis_kernel_source ));
508- CeedDebug256 (ceed , CEED_DEBUG_COLOR_SUCCESS , "----- Loading Basis Kernel Source Complete! -----\n" );
509492 CeedCallBackend (CeedCompile_Cuda (ceed , basis_kernel_source , & data -> module , 5 , "BASIS_Q" , num_qpts , "BASIS_P" , num_nodes , "BASIS_Q_COMP_INTERP" ,
510493 q_comp_interp , "BASIS_Q_COMP_DERIV" , q_comp_grad , "BASIS_NUM_COMP" , num_comp ));
511494 CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Interp" , & data -> Interp ));
512495 CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "InterpTranspose" , & data -> InterpTranspose ));
513496 CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Deriv" , & data -> Deriv ));
514497 CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "DerivTranspose" , & data -> DerivTranspose ));
515498 CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Weight" , & data -> Weight ));
516- CeedCallBackend (CeedFree (& basis_kernel_path ));
517- CeedCallBackend (CeedFree (& basis_kernel_source ));
518499
519500 CeedCallBackend (CeedBasisSetData (basis , data ));
520501
@@ -531,8 +512,6 @@ int CeedBasisCreateH1_Cuda(CeedElemTopology topo, CeedInt dim, CeedInt num_nodes
531512int CeedBasisCreateHdiv_Cuda (CeedElemTopology topo , CeedInt dim , CeedInt num_nodes , CeedInt num_qpts , const CeedScalar * interp , const CeedScalar * div ,
532513 const CeedScalar * q_ref , const CeedScalar * q_weight , CeedBasis basis ) {
533514 Ceed ceed ;
534- char * basis_kernel_source ;
535- const char * basis_kernel_path ;
536515 CeedInt num_comp , q_comp_interp , q_comp_div ;
537516 const CeedInt q_bytes = num_qpts * sizeof (CeedScalar );
538517 CeedBasisNonTensor_Cuda * data ;
@@ -561,20 +540,16 @@ int CeedBasisCreateHdiv_Cuda(CeedElemTopology topo, CeedInt dim, CeedInt num_nod
561540 }
562541
563542 // Compile basis kernels
543+ const char basis_kernel_source [] = "// Nontensor basis source\n#include <ceed/jit-source/cuda/cuda-ref-basis-nontensor.h>\n" ;
544+
564545 CeedCallBackend (CeedBasisGetNumComponents (basis , & num_comp ));
565- CeedCallBackend (CeedGetJitAbsolutePath (ceed , "ceed/jit-source/cuda/cuda-ref-basis-nontensor.h" , & basis_kernel_path ));
566- CeedDebug256 (ceed , CEED_DEBUG_COLOR_SUCCESS , "----- Loading Basis Kernel Source -----\n" );
567- CeedCallBackend (CeedLoadSourceToBuffer (ceed , basis_kernel_path , & basis_kernel_source ));
568- CeedDebug256 (ceed , CEED_DEBUG_COLOR_SUCCESS , "----- Loading Basis Kernel Source Complete! -----\n" );
569546 CeedCallBackend (CeedCompile_Cuda (ceed , basis_kernel_source , & data -> module , 5 , "BASIS_Q" , num_qpts , "BASIS_P" , num_nodes , "BASIS_Q_COMP_INTERP" ,
570547 q_comp_interp , "BASIS_Q_COMP_DERIV" , q_comp_div , "BASIS_NUM_COMP" , num_comp ));
571548 CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Interp" , & data -> Interp ));
572549 CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "InterpTranspose" , & data -> InterpTranspose ));
573550 CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Deriv" , & data -> Deriv ));
574551 CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "DerivTranspose" , & data -> DerivTranspose ));
575552 CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Weight" , & data -> Weight ));
576- CeedCallBackend (CeedFree (& basis_kernel_path ));
577- CeedCallBackend (CeedFree (& basis_kernel_source ));
578553
579554 CeedCallBackend (CeedBasisSetData (basis , data ));
580555
@@ -591,8 +566,6 @@ int CeedBasisCreateHdiv_Cuda(CeedElemTopology topo, CeedInt dim, CeedInt num_nod
591566int CeedBasisCreateHcurl_Cuda (CeedElemTopology topo , CeedInt dim , CeedInt num_nodes , CeedInt num_qpts , const CeedScalar * interp ,
592567 const CeedScalar * curl , const CeedScalar * q_ref , const CeedScalar * q_weight , CeedBasis basis ) {
593568 Ceed ceed ;
594- char * basis_kernel_source ;
595- const char * basis_kernel_path ;
596569 CeedInt num_comp , q_comp_interp , q_comp_curl ;
597570 const CeedInt q_bytes = num_qpts * sizeof (CeedScalar );
598571 CeedBasisNonTensor_Cuda * data ;
@@ -621,20 +594,16 @@ int CeedBasisCreateHcurl_Cuda(CeedElemTopology topo, CeedInt dim, CeedInt num_no
621594 }
622595
623596 // Compile basis kernels
597+ const char basis_kernel_source [] = "// Nontensor basis source\n#include <ceed/jit-source/cuda/cuda-ref-basis-nontensor.h>\n" ;
598+
624599 CeedCallBackend (CeedBasisGetNumComponents (basis , & num_comp ));
625- CeedCallBackend (CeedGetJitAbsolutePath (ceed , "ceed/jit-source/cuda/cuda-ref-basis-nontensor.h" , & basis_kernel_path ));
626- CeedDebug256 (ceed , CEED_DEBUG_COLOR_SUCCESS , "----- Loading Basis Kernel Source -----\n" );
627- CeedCallBackend (CeedLoadSourceToBuffer (ceed , basis_kernel_path , & basis_kernel_source ));
628- CeedDebug256 (ceed , CEED_DEBUG_COLOR_SUCCESS , "----- Loading Basis Kernel Source Complete! -----\n" );
629600 CeedCallBackend (CeedCompile_Cuda (ceed , basis_kernel_source , & data -> module , 5 , "BASIS_Q" , num_qpts , "BASIS_P" , num_nodes , "BASIS_Q_COMP_INTERP" ,
630601 q_comp_interp , "BASIS_Q_COMP_DERIV" , q_comp_curl , "BASIS_NUM_COMP" , num_comp ));
631602 CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Interp" , & data -> Interp ));
632603 CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "InterpTranspose" , & data -> InterpTranspose ));
633604 CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Deriv" , & data -> Deriv ));
634605 CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "DerivTranspose" , & data -> DerivTranspose ));
635606 CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Weight" , & data -> Weight ));
636- CeedCallBackend (CeedFree (& basis_kernel_path ));
637- CeedCallBackend (CeedFree (& basis_kernel_source ));
638607
639608 CeedCallBackend (CeedBasisSetData (basis , data ));
640609
0 commit comments