| 481 | timer.Stop(timer_id); |
| 482 | } |
| 483 | void roundtrip_func_rect() |
| 484 | { |
| 485 | timer.Start(timer_id); |
| 486 | cl_int err; |
| 487 | //rect |
| 488 | size_t a_buffer_origin[3] = {0,0,0}; |
| 489 | size_t a_host_origin[3] = {0,0,0}; |
| 490 | size_t a_region[3] = {buffer_.m_*sizeof(T),buffer_.k_,1}; |
| 491 | size_t a_buffer_row_pitch=0*sizeof(T);//lda |
| 492 | size_t a_buffer_slice_pitch=0; |
| 493 | size_t a_host_row_pitch=buffer_.lda_*sizeof(T); |
| 494 | size_t a_host_slice_pitch=0; |
| 495 | |
| 496 | size_t b_buffer_origin[3] = {0,0,0}; |
| 497 | size_t b_host_origin[3] = {0,0,0}; |
| 498 | size_t b_region[3] = {buffer_.k_*sizeof(T),buffer_.n_,1}; |
| 499 | size_t b_buffer_row_pitch=0*sizeof(T);//ldb |
| 500 | size_t b_buffer_slice_pitch=0; |
| 501 | size_t b_host_row_pitch=buffer_.ldb_*sizeof(T); |
| 502 | size_t b_host_slice_pitch=0; |
| 503 | |
| 504 | size_t c_buffer_origin[3] = {0,0,0}; |
| 505 | size_t c_host_origin[3] = {0,0,0}; |
| 506 | size_t c_region[3] = {buffer_.m_*sizeof(T),buffer_.n_,1}; |
| 507 | size_t c_buffer_row_pitch=0*sizeof(T);//ldc |
| 508 | size_t c_buffer_slice_pitch=0; |
| 509 | size_t c_host_row_pitch=buffer_.ldc_*sizeof(T); |
| 510 | size_t c_host_slice_pitch=0; |
| 511 | |
| 512 | buffer_.buf_a_ = clCreateBuffer(ctx_, CL_MEM_READ_ONLY, |
| 513 | (buffer_.k_*buffer_.m_ + |
| 514 | buffer_.offA_) * sizeof(T), |
| 515 | NULL, &err); |
| 516 | |
| 517 | buffer_.buf_b_ = clCreateBuffer(ctx_, CL_MEM_READ_ONLY, |
| 518 | (buffer_.k_ * buffer_.n_ + |
| 519 | buffer_.offB_) * sizeof(T), |
| 520 | NULL, &err); |
| 521 | |
| 522 | buffer_.buf_c_ = clCreateBuffer(ctx_, CL_MEM_READ_WRITE, |
| 523 | (buffer_.m_ * buffer_.n_ + |
| 524 | buffer_.offC_) * sizeof(T), |
| 525 | NULL, &err); |
| 526 | /* |
| 527 | err = clEnqueueWriteBuffer(queues_[0], buffer_.buf_a_, CL_TRUE, |
| 528 | buffer_.offA_ * sizeof(T), |
| 529 | buffer_.lda_ * buffer_.a_num_vectors_ * |
| 530 | sizeof(T), |
| 531 | buffer_.a_, 0, NULL, NULL); |
| 532 | |
| 533 | err = clEnqueueWriteBuffer(queues_[0], buffer_.buf_b_, CL_TRUE, |
| 534 | buffer_.offB_ * sizeof(T), |
| 535 | buffer_.ldb_ * buffer_.b_num_vectors_ * |
| 536 | sizeof(T), |
| 537 | buffer_.b_, 0, NULL, NULL); |
| 538 | |
| 539 | err = clEnqueueWriteBuffer(queues_[0], buffer_.buf_c_, CL_TRUE, |
| 540 | buffer_.offC_ * sizeof(T), |