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

Method roundtrip_func

src/client/clfunc_xtrmm.hpp:517–560  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

515
516template<>
517void
518xTrmm<cl_float>::
519roundtrip_func()
520{
521 timer.Start(timer_id);
522 cl_int err;
523 //set up buffer
524 buffer_.buf_a_ = clCreateBuffer(ctx_, CL_MEM_READ_ONLY,
525 (buffer_.lda_ * buffer_.a_num_vectors_ +
526 buffer_.offA_) * sizeof(cl_float),
527 NULL, &err);
528
529 buffer_.buf_b_ = clCreateBuffer(ctx_, CL_MEM_READ_WRITE,
530 (buffer_.ldb_ * buffer_.b_num_vectors_ +
531 buffer_.offB_) * sizeof(cl_float),
532 NULL, &err);
533 //initialize gpu buffer
534 err = clEnqueueWriteBuffer(queues_[0], buffer_.buf_a_, CL_TRUE,
535 buffer_.offA_ * sizeof(cl_float),
536 buffer_.lda_ * buffer_.a_num_vectors_ *
537 sizeof(cl_float),
538 buffer_.a_, 0, NULL, NULL);
539
540 err = clEnqueueWriteBuffer(queues_[0], buffer_.buf_b_, CL_TRUE,
541 buffer_.offB_ * sizeof(cl_float),
542 buffer_.ldb_ *buffer_.b_num_vectors_ *
543 sizeof(cl_float),
544 buffer_.b_, 0, NULL, NULL);
545 //call_func
546 clblasStrmm(order_, buffer_.side_, buffer_.uplo_,
547 buffer_.trans_a_, buffer_.diag_,
548 buffer_.m_, buffer_.n_, buffer_.alpha_,
549 buffer_.buf_a_, buffer_.offA_, buffer_.lda_,
550 buffer_.buf_b_, buffer_.offB_, buffer_.ldb_,
551 numQueues, queues_, 0, NULL, NULL);
552 //read gpu buffer
553 err = clEnqueueReadBuffer(queues_[0], buffer_.buf_b_, CL_TRUE,
554 buffer_.offB_ * sizeof(cl_float), buffer_.ldb_ * buffer_.b_num_vectors_ *
555 sizeof(cl_float),
556 buffer_.b_, 0, NULL, &event_);
557 clWaitForEvents(1, &event_);
558 timer.Stop(timer_id);
559
560}
561
562template<>
563void

Callers

nothing calls this directly

Calls 6

clblasStrmmFunction · 0.85
clblasDtrmmFunction · 0.85
clblasCtrmmFunction · 0.85
clblasZtrmmFunction · 0.85
StartMethod · 0.80
StopMethod · 0.80

Tested by

no test coverage detected