@@ -182,24 +182,17 @@ static int CeedBasisApplyAtPointsCore_Cuda(CeedBasis basis, bool apply_add, cons
182
182
}
183
183
184
184
// -- 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 ;
188
187
189
188
if (data -> moduleAtPoints ) CeedCallCuda (ceed , cuModuleUnload (data -> moduleAtPoints ));
190
189
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" );
195
190
CeedCallBackend (CeedCompile_Cuda (ceed , basis_kernel_source , & data -> moduleAtPoints , 9 , "BASIS_Q_1D" , Q_1d , "BASIS_P_1D" , P_1d , "BASIS_BUF_LEN" ,
196
191
Q_1d * CeedIntPow (Q_1d > P_1d ? Q_1d : P_1d , dim - 1 ), "BASIS_DIM" , dim , "BASIS_NUM_COMP" , num_comp ,
197
192
"BASIS_NUM_NODES" , CeedIntPow (P_1d , dim ), "BASIS_NUM_QPTS" , CeedIntPow (Q_1d , dim ), "BASIS_NUM_PTS" ,
198
193
max_num_points , "POINTS_BUFF_LEN" , CeedIntPow (Q_1d , dim - 1 )));
199
194
CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> moduleAtPoints , "InterpAtPoints" , & data -> InterpAtPoints ));
200
195
CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> moduleAtPoints , "GradAtPoints" , & data -> GradAtPoints ));
201
- CeedCallBackend (CeedFree (& basis_kernel_path ));
202
- CeedCallBackend (CeedFree (& basis_kernel_source ));
203
196
}
204
197
205
198
// Get read/write access to u, v
@@ -419,8 +412,6 @@ static int CeedBasisDestroyNonTensor_Cuda(CeedBasis basis) {
419
412
int CeedBasisCreateTensorH1_Cuda (CeedInt dim , CeedInt P_1d , CeedInt Q_1d , const CeedScalar * interp_1d , const CeedScalar * grad_1d ,
420
413
const CeedScalar * q_ref_1d , const CeedScalar * q_weight_1d , CeedBasis basis ) {
421
414
Ceed ceed ;
422
- char * basis_kernel_source ;
423
- const char * basis_kernel_path ;
424
415
CeedInt num_comp ;
425
416
const CeedInt q_bytes = Q_1d * sizeof (CeedScalar );
426
417
const CeedInt interp_bytes = q_bytes * P_1d ;
@@ -440,19 +431,15 @@ int CeedBasisCreateTensorH1_Cuda(CeedInt dim, CeedInt P_1d, CeedInt Q_1d, const
440
431
CeedCallCuda (ceed , cudaMemcpy (data -> d_grad_1d , grad_1d , interp_bytes , cudaMemcpyHostToDevice ));
441
432
442
433
// 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
+
443
436
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" );
448
437
CeedCallBackend (CeedCompile_Cuda (ceed , basis_kernel_source , & data -> module , 7 , "BASIS_Q_1D" , Q_1d , "BASIS_P_1D" , P_1d , "BASIS_BUF_LEN" ,
449
438
Q_1d * CeedIntPow (Q_1d > P_1d ? Q_1d : P_1d , dim - 1 ), "BASIS_DIM" , dim , "BASIS_NUM_COMP" , num_comp ,
450
439
"BASIS_NUM_NODES" , CeedIntPow (P_1d , dim ), "BASIS_NUM_QPTS" , CeedIntPow (Q_1d , dim )));
451
440
CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Interp" , & data -> Interp ));
452
441
CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Grad" , & data -> Grad ));
453
442
CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Weight" , & data -> Weight ));
454
- CeedCallBackend (CeedFree (& basis_kernel_path ));
455
- CeedCallBackend (CeedFree (& basis_kernel_source ));
456
443
457
444
CeedCallBackend (CeedBasisSetData (basis , data ));
458
445
@@ -471,8 +458,6 @@ int CeedBasisCreateTensorH1_Cuda(CeedInt dim, CeedInt P_1d, CeedInt Q_1d, const
471
458
int CeedBasisCreateH1_Cuda (CeedElemTopology topo , CeedInt dim , CeedInt num_nodes , CeedInt num_qpts , const CeedScalar * interp , const CeedScalar * grad ,
472
459
const CeedScalar * q_ref , const CeedScalar * q_weight , CeedBasis basis ) {
473
460
Ceed ceed ;
474
- char * basis_kernel_source ;
475
- const char * basis_kernel_path ;
476
461
CeedInt num_comp , q_comp_interp , q_comp_grad ;
477
462
const CeedInt q_bytes = num_qpts * sizeof (CeedScalar );
478
463
CeedBasisNonTensor_Cuda * data ;
@@ -501,20 +486,16 @@ int CeedBasisCreateH1_Cuda(CeedElemTopology topo, CeedInt dim, CeedInt num_nodes
501
486
}
502
487
503
488
// 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
+
504
491
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" );
509
492
CeedCallBackend (CeedCompile_Cuda (ceed , basis_kernel_source , & data -> module , 5 , "BASIS_Q" , num_qpts , "BASIS_P" , num_nodes , "BASIS_Q_COMP_INTERP" ,
510
493
q_comp_interp , "BASIS_Q_COMP_DERIV" , q_comp_grad , "BASIS_NUM_COMP" , num_comp ));
511
494
CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Interp" , & data -> Interp ));
512
495
CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "InterpTranspose" , & data -> InterpTranspose ));
513
496
CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Deriv" , & data -> Deriv ));
514
497
CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "DerivTranspose" , & data -> DerivTranspose ));
515
498
CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Weight" , & data -> Weight ));
516
- CeedCallBackend (CeedFree (& basis_kernel_path ));
517
- CeedCallBackend (CeedFree (& basis_kernel_source ));
518
499
519
500
CeedCallBackend (CeedBasisSetData (basis , data ));
520
501
@@ -531,8 +512,6 @@ int CeedBasisCreateH1_Cuda(CeedElemTopology topo, CeedInt dim, CeedInt num_nodes
531
512
int CeedBasisCreateHdiv_Cuda (CeedElemTopology topo , CeedInt dim , CeedInt num_nodes , CeedInt num_qpts , const CeedScalar * interp , const CeedScalar * div ,
532
513
const CeedScalar * q_ref , const CeedScalar * q_weight , CeedBasis basis ) {
533
514
Ceed ceed ;
534
- char * basis_kernel_source ;
535
- const char * basis_kernel_path ;
536
515
CeedInt num_comp , q_comp_interp , q_comp_div ;
537
516
const CeedInt q_bytes = num_qpts * sizeof (CeedScalar );
538
517
CeedBasisNonTensor_Cuda * data ;
@@ -561,20 +540,16 @@ int CeedBasisCreateHdiv_Cuda(CeedElemTopology topo, CeedInt dim, CeedInt num_nod
561
540
}
562
541
563
542
// 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
+
564
545
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" );
569
546
CeedCallBackend (CeedCompile_Cuda (ceed , basis_kernel_source , & data -> module , 5 , "BASIS_Q" , num_qpts , "BASIS_P" , num_nodes , "BASIS_Q_COMP_INTERP" ,
570
547
q_comp_interp , "BASIS_Q_COMP_DERIV" , q_comp_div , "BASIS_NUM_COMP" , num_comp ));
571
548
CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Interp" , & data -> Interp ));
572
549
CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "InterpTranspose" , & data -> InterpTranspose ));
573
550
CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Deriv" , & data -> Deriv ));
574
551
CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "DerivTranspose" , & data -> DerivTranspose ));
575
552
CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Weight" , & data -> Weight ));
576
- CeedCallBackend (CeedFree (& basis_kernel_path ));
577
- CeedCallBackend (CeedFree (& basis_kernel_source ));
578
553
579
554
CeedCallBackend (CeedBasisSetData (basis , data ));
580
555
@@ -591,8 +566,6 @@ int CeedBasisCreateHdiv_Cuda(CeedElemTopology topo, CeedInt dim, CeedInt num_nod
591
566
int CeedBasisCreateHcurl_Cuda (CeedElemTopology topo , CeedInt dim , CeedInt num_nodes , CeedInt num_qpts , const CeedScalar * interp ,
592
567
const CeedScalar * curl , const CeedScalar * q_ref , const CeedScalar * q_weight , CeedBasis basis ) {
593
568
Ceed ceed ;
594
- char * basis_kernel_source ;
595
- const char * basis_kernel_path ;
596
569
CeedInt num_comp , q_comp_interp , q_comp_curl ;
597
570
const CeedInt q_bytes = num_qpts * sizeof (CeedScalar );
598
571
CeedBasisNonTensor_Cuda * data ;
@@ -621,20 +594,16 @@ int CeedBasisCreateHcurl_Cuda(CeedElemTopology topo, CeedInt dim, CeedInt num_no
621
594
}
622
595
623
596
// 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
+
624
599
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" );
629
600
CeedCallBackend (CeedCompile_Cuda (ceed , basis_kernel_source , & data -> module , 5 , "BASIS_Q" , num_qpts , "BASIS_P" , num_nodes , "BASIS_Q_COMP_INTERP" ,
630
601
q_comp_interp , "BASIS_Q_COMP_DERIV" , q_comp_curl , "BASIS_NUM_COMP" , num_comp ));
631
602
CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Interp" , & data -> Interp ));
632
603
CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "InterpTranspose" , & data -> InterpTranspose ));
633
604
CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Deriv" , & data -> Deriv ));
634
605
CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "DerivTranspose" , & data -> DerivTranspose ));
635
606
CeedCallBackend (CeedGetKernel_Cuda (ceed , data -> module , "Weight" , & data -> Weight ));
636
- CeedCallBackend (CeedFree (& basis_kernel_path ));
637
- CeedCallBackend (CeedFree (& basis_kernel_source ));
638
607
639
608
CeedCallBackend (CeedBasisSetData (basis , data ));
640
609
0 commit comments