MCPcopy Create free account
hub / github.com/clMathLibraries/clBLAS / assignKargs

Method assignKargs

src/library/tools/ktest/step.cpp:496–616  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

494}
495
496void
497Step::assignKargs(const StepKargs& map)
498{
499 CLBlasKargs args;
500 KernelArg kargsList[MAX_KERNEL_ARGS];
501 Variable *v;
502
503 if ((pattern_->sops == NULL) || (pattern_->sops->assignKargs == NULL)) {
504 return;
505 }
506
507 memset(&kargsList, KARG_NONE, sizeof(kargsList));
508
509 args.kernType = CLBLAS_COMPUTING_KERNEL;
510 args.dtype = TYPE_COMPLEX_DOUBLE;
511 args.addrBits = 0;
512
513 args.order = static_cast<clblasOrder>(KARG_ORDER);
514 args.side = static_cast<clblasSide>(KARG_SIDE);
515 args.uplo = static_cast<clblasUplo>(KARG_UPLO);
516 args.transA = static_cast<clblasTranspose>(KARG_TRANS_A);
517 args.transB = static_cast<clblasTranspose>(KARG_TRANS_B);
518 args.diag = static_cast<clblasDiag>(KARG_DIAG);
519
520 args.M = KARG_M;
521 args.N = KARG_N;
522 args.K = KARG_K;
523
524 args.lda.matrix = KARG_LDA;
525 args.ldb.matrix = KARG_LDB;
526 args.ldc.matrix = KARG_LDC;
527
528 args.offsetM = KARG_OFFSET_M;
529 args.offsetN = KARG_OFFSET_N;
530 args.offsetK = KARG_OFFSET_K;
531 args.offA = KARG_OFF_A;
532 args.offBX = KARG_OFF_BX;
533 args.offCY = KARG_OFF_CY;
534
535 args.A = reinterpret_cast<cl_mem>(KARG_A);
536 args.B = reinterpret_cast<cl_mem>(KARG_B);
537 args.C = reinterpret_cast<cl_mem>(KARG_C);
538
539 memset(&args.alpha, KARG_ALPHA, sizeof(args.alpha));
540 memset(&args.beta, KARG_BETA, sizeof(args.beta));
541
542 args.scimage[0] = reinterpret_cast<cl_mem>(KARG_SCIMAGE_0);
543 args.scimage[1] = reinterpret_cast<cl_mem>(KARG_SCIMAGE_1);
544
545 pattern_->sops->assignKargs(kargsList, static_cast<void*>(&args), &kextra_);
546
547 for (unsigned int i = 0; (i < MAX_KERNEL_ARGS) && (kargsList[i].typeSize != 0); i++) {
548 switch (static_cast<StepKarg>(kargsList[i].arg.data[0])) {
549 case KARG_M:
550 v = map.M;
551 break;
552 case KARG_N:
553 v = map.N;

Callers 2

initKernelArgFunction · 0.80
enqueueKernelFunction · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected