| 494 | } |
| 495 | |
| 496 | void |
| 497 | Step::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; |
no outgoing calls
no test coverage detected