mirror of
https://github.com/CNugteren/CLBlast.git
synced 2024-08-21 12:32:26 +02:00
Added TRMM and TRSM clBLAS wrappers
This commit is contained in:
parent
cbf2eef179
commit
14186af590
|
@ -76,33 +76,33 @@ clblasStatus clblasXaxpy(
|
||||||
|
|
||||||
// Calls {clblasSgemv, clblasDgemv, clblasCgemv, clblasZgemv} with the arguments forwarded.
|
// Calls {clblasSgemv, clblasDgemv, clblasCgemv, clblasZgemv} with the arguments forwarded.
|
||||||
clblasStatus clblasXgemv(
|
clblasStatus clblasXgemv(
|
||||||
clblasOrder layout, clblasTranspose tran_a, size_t m, size_t n, float alpha,
|
clblasOrder layout, clblasTranspose a_transpose, size_t m, size_t n, float alpha,
|
||||||
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
||||||
const cl_mem x_vec, size_t x_offset, size_t x_inc, float beta,
|
const cl_mem x_vec, size_t x_offset, size_t x_inc, float beta,
|
||||||
const cl_mem y_vec, size_t y_offset, size_t y_inc,
|
const cl_mem y_vec, size_t y_offset, size_t y_inc,
|
||||||
cl_uint num_queues, cl_command_queue *queues,
|
cl_uint num_queues, cl_command_queue *queues,
|
||||||
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
return clblasSgemv(layout, tran_a, m, n, alpha,
|
return clblasSgemv(layout, a_transpose, m, n, alpha,
|
||||||
a_mat, a_offset, a_ld,
|
a_mat, a_offset, a_ld,
|
||||||
x_vec, x_offset, static_cast<int>(x_inc), beta,
|
x_vec, x_offset, static_cast<int>(x_inc), beta,
|
||||||
y_vec, y_offset, static_cast<int>(y_inc),
|
y_vec, y_offset, static_cast<int>(y_inc),
|
||||||
num_queues, queues, num_wait_events, wait_events, events);
|
num_queues, queues, num_wait_events, wait_events, events);
|
||||||
}
|
}
|
||||||
clblasStatus clblasXgemv(
|
clblasStatus clblasXgemv(
|
||||||
clblasOrder layout, clblasTranspose tran_a, size_t m, size_t n, double alpha,
|
clblasOrder layout, clblasTranspose a_transpose, size_t m, size_t n, double alpha,
|
||||||
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
||||||
const cl_mem x_vec, size_t x_offset, size_t x_inc, double beta,
|
const cl_mem x_vec, size_t x_offset, size_t x_inc, double beta,
|
||||||
const cl_mem y_vec, size_t y_offset, size_t y_inc,
|
const cl_mem y_vec, size_t y_offset, size_t y_inc,
|
||||||
cl_uint num_queues, cl_command_queue *queues,
|
cl_uint num_queues, cl_command_queue *queues,
|
||||||
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
return clblasDgemv(layout, tran_a, m, n, alpha,
|
return clblasDgemv(layout, a_transpose, m, n, alpha,
|
||||||
a_mat, a_offset, a_ld,
|
a_mat, a_offset, a_ld,
|
||||||
x_vec, x_offset, static_cast<int>(x_inc), beta,
|
x_vec, x_offset, static_cast<int>(x_inc), beta,
|
||||||
y_vec, y_offset, static_cast<int>(y_inc),
|
y_vec, y_offset, static_cast<int>(y_inc),
|
||||||
num_queues, queues, num_wait_events, wait_events, events);
|
num_queues, queues, num_wait_events, wait_events, events);
|
||||||
}
|
}
|
||||||
clblasStatus clblasXgemv(
|
clblasStatus clblasXgemv(
|
||||||
clblasOrder layout, clblasTranspose tran_a, size_t m, size_t n, float2 alpha,
|
clblasOrder layout, clblasTranspose a_transpose, size_t m, size_t n, float2 alpha,
|
||||||
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
||||||
const cl_mem x_vec, size_t x_offset, size_t x_inc, float2 beta,
|
const cl_mem x_vec, size_t x_offset, size_t x_inc, float2 beta,
|
||||||
const cl_mem y_vec, size_t y_offset, size_t y_inc,
|
const cl_mem y_vec, size_t y_offset, size_t y_inc,
|
||||||
|
@ -110,14 +110,14 @@ clblasStatus clblasXgemv(
|
||||||
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
auto cl_alpha = cl_float2{{alpha.real(), alpha.imag()}};
|
auto cl_alpha = cl_float2{{alpha.real(), alpha.imag()}};
|
||||||
auto cl_beta = cl_float2{{beta.real(), beta.imag()}};
|
auto cl_beta = cl_float2{{beta.real(), beta.imag()}};
|
||||||
return clblasCgemv(layout, tran_a, m, n, cl_alpha,
|
return clblasCgemv(layout, a_transpose, m, n, cl_alpha,
|
||||||
a_mat, a_offset, a_ld,
|
a_mat, a_offset, a_ld,
|
||||||
x_vec, x_offset, static_cast<int>(x_inc), cl_beta,
|
x_vec, x_offset, static_cast<int>(x_inc), cl_beta,
|
||||||
y_vec, y_offset, static_cast<int>(y_inc),
|
y_vec, y_offset, static_cast<int>(y_inc),
|
||||||
num_queues, queues, num_wait_events, wait_events, events);
|
num_queues, queues, num_wait_events, wait_events, events);
|
||||||
}
|
}
|
||||||
clblasStatus clblasXgemv(
|
clblasStatus clblasXgemv(
|
||||||
clblasOrder layout, clblasTranspose tran_a, size_t m, size_t n, double2 alpha,
|
clblasOrder layout, clblasTranspose a_transpose, size_t m, size_t n, double2 alpha,
|
||||||
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
||||||
const cl_mem x_vec, size_t x_offset, size_t x_inc, double2 beta,
|
const cl_mem x_vec, size_t x_offset, size_t x_inc, double2 beta,
|
||||||
const cl_mem y_vec, size_t y_offset, size_t y_inc,
|
const cl_mem y_vec, size_t y_offset, size_t y_inc,
|
||||||
|
@ -125,7 +125,7 @@ clblasStatus clblasXgemv(
|
||||||
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
auto cl_alpha = cl_double2{{alpha.real(), alpha.imag()}};
|
auto cl_alpha = cl_double2{{alpha.real(), alpha.imag()}};
|
||||||
auto cl_beta = cl_double2{{beta.real(), beta.imag()}};
|
auto cl_beta = cl_double2{{beta.real(), beta.imag()}};
|
||||||
return clblasZgemv(layout, tran_a, m, n, cl_alpha,
|
return clblasZgemv(layout, a_transpose, m, n, cl_alpha,
|
||||||
a_mat, a_offset, a_ld,
|
a_mat, a_offset, a_ld,
|
||||||
x_vec, x_offset, static_cast<int>(x_inc), cl_beta,
|
x_vec, x_offset, static_cast<int>(x_inc), cl_beta,
|
||||||
y_vec, y_offset, static_cast<int>(y_inc),
|
y_vec, y_offset, static_cast<int>(y_inc),
|
||||||
|
@ -137,14 +137,14 @@ clblasStatus clblasXgemv(
|
||||||
|
|
||||||
// This calls {clblasSgemm, clblasDgemm, clblasCgemm, clblasZgemm} with the arguments forwarded.
|
// This calls {clblasSgemm, clblasDgemm, clblasCgemm, clblasZgemm} with the arguments forwarded.
|
||||||
clblasStatus clblasXgemm(
|
clblasStatus clblasXgemm(
|
||||||
clblasOrder layout, clblasTranspose tran_a, clblasTranspose tran_b,
|
clblasOrder layout, clblasTranspose a_transpose, clblasTranspose b_transpose,
|
||||||
size_t m, size_t n, size_t k, float alpha,
|
size_t m, size_t n, size_t k, float alpha,
|
||||||
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
||||||
const cl_mem b_mat, size_t b_offset, size_t b_ld, float beta,
|
const cl_mem b_mat, size_t b_offset, size_t b_ld, float beta,
|
||||||
cl_mem c_mat, size_t c_offset, size_t c_ld,
|
cl_mem c_mat, size_t c_offset, size_t c_ld,
|
||||||
cl_uint num_queues, cl_command_queue *queues,
|
cl_uint num_queues, cl_command_queue *queues,
|
||||||
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
return clblasSgemm(layout, tran_a, tran_b,
|
return clblasSgemm(layout, a_transpose, b_transpose,
|
||||||
m, n, k, alpha,
|
m, n, k, alpha,
|
||||||
a_mat, a_offset, a_ld,
|
a_mat, a_offset, a_ld,
|
||||||
b_mat, b_offset, b_ld, beta,
|
b_mat, b_offset, b_ld, beta,
|
||||||
|
@ -152,14 +152,14 @@ clblasStatus clblasXgemm(
|
||||||
num_queues, queues, num_wait_events, wait_events, events);
|
num_queues, queues, num_wait_events, wait_events, events);
|
||||||
}
|
}
|
||||||
clblasStatus clblasXgemm(
|
clblasStatus clblasXgemm(
|
||||||
clblasOrder layout, clblasTranspose tran_a, clblasTranspose tran_b,
|
clblasOrder layout, clblasTranspose a_transpose, clblasTranspose b_transpose,
|
||||||
size_t m, size_t n, size_t k, double alpha,
|
size_t m, size_t n, size_t k, double alpha,
|
||||||
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
||||||
const cl_mem b_mat, size_t b_offset, size_t b_ld, double beta,
|
const cl_mem b_mat, size_t b_offset, size_t b_ld, double beta,
|
||||||
cl_mem c_mat, size_t c_offset, size_t c_ld,
|
cl_mem c_mat, size_t c_offset, size_t c_ld,
|
||||||
cl_uint num_queues, cl_command_queue *queues,
|
cl_uint num_queues, cl_command_queue *queues,
|
||||||
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
return clblasDgemm(layout, tran_a, tran_b,
|
return clblasDgemm(layout, a_transpose, b_transpose,
|
||||||
m, n, k, alpha,
|
m, n, k, alpha,
|
||||||
a_mat, a_offset, a_ld,
|
a_mat, a_offset, a_ld,
|
||||||
b_mat, b_offset, b_ld, beta,
|
b_mat, b_offset, b_ld, beta,
|
||||||
|
@ -167,7 +167,7 @@ clblasStatus clblasXgemm(
|
||||||
num_queues, queues, num_wait_events, wait_events, events);
|
num_queues, queues, num_wait_events, wait_events, events);
|
||||||
}
|
}
|
||||||
clblasStatus clblasXgemm(
|
clblasStatus clblasXgemm(
|
||||||
clblasOrder layout, clblasTranspose tran_a, clblasTranspose tran_b,
|
clblasOrder layout, clblasTranspose a_transpose, clblasTranspose b_transpose,
|
||||||
size_t m, size_t n, size_t k, float2 alpha,
|
size_t m, size_t n, size_t k, float2 alpha,
|
||||||
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
||||||
const cl_mem b_mat, size_t b_offset, size_t b_ld, float2 beta,
|
const cl_mem b_mat, size_t b_offset, size_t b_ld, float2 beta,
|
||||||
|
@ -176,7 +176,7 @@ clblasStatus clblasXgemm(
|
||||||
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
auto cl_alpha = cl_float2{{alpha.real(), alpha.imag()}};
|
auto cl_alpha = cl_float2{{alpha.real(), alpha.imag()}};
|
||||||
auto cl_beta = cl_float2{{beta.real(), beta.imag()}};
|
auto cl_beta = cl_float2{{beta.real(), beta.imag()}};
|
||||||
return clblasCgemm(layout, tran_a, tran_b,
|
return clblasCgemm(layout, a_transpose, b_transpose,
|
||||||
m, n, k, cl_alpha,
|
m, n, k, cl_alpha,
|
||||||
a_mat, a_offset, a_ld,
|
a_mat, a_offset, a_ld,
|
||||||
b_mat, b_offset, b_ld, cl_beta,
|
b_mat, b_offset, b_ld, cl_beta,
|
||||||
|
@ -184,7 +184,7 @@ clblasStatus clblasXgemm(
|
||||||
num_queues, queues, num_wait_events, wait_events, events);
|
num_queues, queues, num_wait_events, wait_events, events);
|
||||||
}
|
}
|
||||||
clblasStatus clblasXgemm(
|
clblasStatus clblasXgemm(
|
||||||
clblasOrder layout, clblasTranspose tran_a, clblasTranspose tran_b,
|
clblasOrder layout, clblasTranspose a_transpose, clblasTranspose b_transpose,
|
||||||
size_t m, size_t n, size_t k, double2 alpha,
|
size_t m, size_t n, size_t k, double2 alpha,
|
||||||
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
||||||
const cl_mem b_mat, size_t b_offset, size_t b_ld, double2 beta,
|
const cl_mem b_mat, size_t b_offset, size_t b_ld, double2 beta,
|
||||||
|
@ -193,7 +193,7 @@ clblasStatus clblasXgemm(
|
||||||
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
auto cl_alpha = cl_double2{{alpha.real(), alpha.imag()}};
|
auto cl_alpha = cl_double2{{alpha.real(), alpha.imag()}};
|
||||||
auto cl_beta = cl_double2{{beta.real(), beta.imag()}};
|
auto cl_beta = cl_double2{{beta.real(), beta.imag()}};
|
||||||
return clblasZgemm(layout, tran_a, tran_b,
|
return clblasZgemm(layout, a_transpose, b_transpose,
|
||||||
m, n, k, cl_alpha,
|
m, n, k, cl_alpha,
|
||||||
a_mat, a_offset, a_ld,
|
a_mat, a_offset, a_ld,
|
||||||
b_mat, b_offset, b_ld, cl_beta,
|
b_mat, b_offset, b_ld, cl_beta,
|
||||||
|
@ -269,33 +269,33 @@ clblasStatus clblasXsymm(
|
||||||
|
|
||||||
// This calls {clblasSsyrk, clblasDsyrk, clblasCsyrk, clblasZsyrk} with the arguments forwarded.
|
// This calls {clblasSsyrk, clblasDsyrk, clblasCsyrk, clblasZsyrk} with the arguments forwarded.
|
||||||
clblasStatus clblasXsyrk(
|
clblasStatus clblasXsyrk(
|
||||||
clblasOrder layout, clblasUplo triangle, clblasTranspose tran_a,
|
clblasOrder layout, clblasUplo triangle, clblasTranspose a_transpose,
|
||||||
size_t n, size_t k, float alpha,
|
size_t n, size_t k, float alpha,
|
||||||
const cl_mem a_mat, size_t a_offset, size_t a_ld, float beta,
|
const cl_mem a_mat, size_t a_offset, size_t a_ld, float beta,
|
||||||
cl_mem c_mat, size_t c_offset, size_t c_ld,
|
cl_mem c_mat, size_t c_offset, size_t c_ld,
|
||||||
cl_uint num_queues, cl_command_queue *queues,
|
cl_uint num_queues, cl_command_queue *queues,
|
||||||
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
return clblasSsyrk(layout, triangle, tran_a,
|
return clblasSsyrk(layout, triangle, a_transpose,
|
||||||
n, k, alpha,
|
n, k, alpha,
|
||||||
a_mat, a_offset, a_ld, beta,
|
a_mat, a_offset, a_ld, beta,
|
||||||
c_mat, c_offset, c_ld,
|
c_mat, c_offset, c_ld,
|
||||||
num_queues, queues, num_wait_events, wait_events, events);
|
num_queues, queues, num_wait_events, wait_events, events);
|
||||||
}
|
}
|
||||||
clblasStatus clblasXsyrk(
|
clblasStatus clblasXsyrk(
|
||||||
clblasOrder layout, clblasUplo triangle, clblasTranspose tran_a,
|
clblasOrder layout, clblasUplo triangle, clblasTranspose a_transpose,
|
||||||
size_t n, size_t k, double alpha,
|
size_t n, size_t k, double alpha,
|
||||||
const cl_mem a_mat, size_t a_offset, size_t a_ld, double beta,
|
const cl_mem a_mat, size_t a_offset, size_t a_ld, double beta,
|
||||||
cl_mem c_mat, size_t c_offset, size_t c_ld,
|
cl_mem c_mat, size_t c_offset, size_t c_ld,
|
||||||
cl_uint num_queues, cl_command_queue *queues,
|
cl_uint num_queues, cl_command_queue *queues,
|
||||||
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
return clblasDsyrk(layout, triangle, tran_a,
|
return clblasDsyrk(layout, triangle, a_transpose,
|
||||||
n, k, alpha,
|
n, k, alpha,
|
||||||
a_mat, a_offset, a_ld, beta,
|
a_mat, a_offset, a_ld, beta,
|
||||||
c_mat, c_offset, c_ld,
|
c_mat, c_offset, c_ld,
|
||||||
num_queues, queues, num_wait_events, wait_events, events);
|
num_queues, queues, num_wait_events, wait_events, events);
|
||||||
}
|
}
|
||||||
clblasStatus clblasXsyrk(
|
clblasStatus clblasXsyrk(
|
||||||
clblasOrder layout, clblasUplo triangle, clblasTranspose tran_a,
|
clblasOrder layout, clblasUplo triangle, clblasTranspose a_transpose,
|
||||||
size_t n, size_t k, float2 alpha,
|
size_t n, size_t k, float2 alpha,
|
||||||
const cl_mem a_mat, size_t a_offset, size_t a_ld, float2 beta,
|
const cl_mem a_mat, size_t a_offset, size_t a_ld, float2 beta,
|
||||||
cl_mem c_mat, size_t c_offset, size_t c_ld,
|
cl_mem c_mat, size_t c_offset, size_t c_ld,
|
||||||
|
@ -303,14 +303,14 @@ clblasStatus clblasXsyrk(
|
||||||
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
auto cl_alpha = cl_float2{{alpha.real(), alpha.imag()}};
|
auto cl_alpha = cl_float2{{alpha.real(), alpha.imag()}};
|
||||||
auto cl_beta = cl_float2{{beta.real(), beta.imag()}};
|
auto cl_beta = cl_float2{{beta.real(), beta.imag()}};
|
||||||
return clblasCsyrk(layout, triangle, tran_a,
|
return clblasCsyrk(layout, triangle, a_transpose,
|
||||||
n, k, cl_alpha,
|
n, k, cl_alpha,
|
||||||
a_mat, a_offset, a_ld, cl_beta,
|
a_mat, a_offset, a_ld, cl_beta,
|
||||||
c_mat, c_offset, c_ld,
|
c_mat, c_offset, c_ld,
|
||||||
num_queues, queues, num_wait_events, wait_events, events);
|
num_queues, queues, num_wait_events, wait_events, events);
|
||||||
}
|
}
|
||||||
clblasStatus clblasXsyrk(
|
clblasStatus clblasXsyrk(
|
||||||
clblasOrder layout, clblasUplo triangle, clblasTranspose tran_a,
|
clblasOrder layout, clblasUplo triangle, clblasTranspose a_transpose,
|
||||||
size_t n, size_t k, double2 alpha,
|
size_t n, size_t k, double2 alpha,
|
||||||
const cl_mem a_mat, size_t a_offset, size_t a_ld, double2 beta,
|
const cl_mem a_mat, size_t a_offset, size_t a_ld, double2 beta,
|
||||||
cl_mem c_mat, size_t c_offset, size_t c_ld,
|
cl_mem c_mat, size_t c_offset, size_t c_ld,
|
||||||
|
@ -318,7 +318,7 @@ clblasStatus clblasXsyrk(
|
||||||
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
auto cl_alpha = cl_double2{{alpha.real(), alpha.imag()}};
|
auto cl_alpha = cl_double2{{alpha.real(), alpha.imag()}};
|
||||||
auto cl_beta = cl_double2{{beta.real(), beta.imag()}};
|
auto cl_beta = cl_double2{{beta.real(), beta.imag()}};
|
||||||
return clblasZsyrk(layout, triangle, tran_a,
|
return clblasZsyrk(layout, triangle, a_transpose,
|
||||||
n, k, cl_alpha,
|
n, k, cl_alpha,
|
||||||
a_mat, a_offset, a_ld, cl_beta,
|
a_mat, a_offset, a_ld, cl_beta,
|
||||||
c_mat, c_offset, c_ld,
|
c_mat, c_offset, c_ld,
|
||||||
|
@ -327,14 +327,14 @@ clblasStatus clblasXsyrk(
|
||||||
|
|
||||||
// This calls {clblasSsyr2k, clblasDsyr2k, clblasCsyr2k, clblasZsyr2k} with the arguments forwarded.
|
// This calls {clblasSsyr2k, clblasDsyr2k, clblasCsyr2k, clblasZsyr2k} with the arguments forwarded.
|
||||||
clblasStatus clblasXsyr2k(
|
clblasStatus clblasXsyr2k(
|
||||||
clblasOrder layout, clblasUplo triangle, clblasTranspose tran_ab,
|
clblasOrder layout, clblasUplo triangle, clblasTranspose ab_transpose,
|
||||||
size_t n, size_t k, float alpha,
|
size_t n, size_t k, float alpha,
|
||||||
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
||||||
const cl_mem b_mat, size_t b_offset, size_t b_ld, float beta,
|
const cl_mem b_mat, size_t b_offset, size_t b_ld, float beta,
|
||||||
cl_mem c_mat, size_t c_offset, size_t c_ld,
|
cl_mem c_mat, size_t c_offset, size_t c_ld,
|
||||||
cl_uint num_queues, cl_command_queue *queues,
|
cl_uint num_queues, cl_command_queue *queues,
|
||||||
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
return clblasSsyr2k(layout, triangle, tran_ab,
|
return clblasSsyr2k(layout, triangle, ab_transpose,
|
||||||
n, k, alpha,
|
n, k, alpha,
|
||||||
a_mat, a_offset, a_ld,
|
a_mat, a_offset, a_ld,
|
||||||
b_mat, b_offset, b_ld, beta,
|
b_mat, b_offset, b_ld, beta,
|
||||||
|
@ -342,14 +342,14 @@ clblasStatus clblasXsyr2k(
|
||||||
num_queues, queues, num_wait_events, wait_events, events);
|
num_queues, queues, num_wait_events, wait_events, events);
|
||||||
}
|
}
|
||||||
clblasStatus clblasXsyr2k(
|
clblasStatus clblasXsyr2k(
|
||||||
clblasOrder layout, clblasUplo triangle, clblasTranspose tran_ab,
|
clblasOrder layout, clblasUplo triangle, clblasTranspose ab_transpose,
|
||||||
size_t n, size_t k, double alpha,
|
size_t n, size_t k, double alpha,
|
||||||
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
||||||
const cl_mem b_mat, size_t b_offset, size_t b_ld, double beta,
|
const cl_mem b_mat, size_t b_offset, size_t b_ld, double beta,
|
||||||
cl_mem c_mat, size_t c_offset, size_t c_ld,
|
cl_mem c_mat, size_t c_offset, size_t c_ld,
|
||||||
cl_uint num_queues, cl_command_queue *queues,
|
cl_uint num_queues, cl_command_queue *queues,
|
||||||
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
return clblasDsyr2k(layout, triangle, tran_ab,
|
return clblasDsyr2k(layout, triangle, ab_transpose,
|
||||||
n, k, alpha,
|
n, k, alpha,
|
||||||
a_mat, a_offset, a_ld,
|
a_mat, a_offset, a_ld,
|
||||||
b_mat, b_offset, b_ld, beta,
|
b_mat, b_offset, b_ld, beta,
|
||||||
|
@ -357,7 +357,7 @@ clblasStatus clblasXsyr2k(
|
||||||
num_queues, queues, num_wait_events, wait_events, events);
|
num_queues, queues, num_wait_events, wait_events, events);
|
||||||
}
|
}
|
||||||
clblasStatus clblasXsyr2k(
|
clblasStatus clblasXsyr2k(
|
||||||
clblasOrder layout, clblasUplo triangle, clblasTranspose tran_ab,
|
clblasOrder layout, clblasUplo triangle, clblasTranspose ab_transpose,
|
||||||
size_t n, size_t k, float2 alpha,
|
size_t n, size_t k, float2 alpha,
|
||||||
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
||||||
const cl_mem b_mat, size_t b_offset, size_t b_ld, float2 beta,
|
const cl_mem b_mat, size_t b_offset, size_t b_ld, float2 beta,
|
||||||
|
@ -366,7 +366,7 @@ clblasStatus clblasXsyr2k(
|
||||||
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
auto cl_alpha = cl_float2{{alpha.real(), alpha.imag()}};
|
auto cl_alpha = cl_float2{{alpha.real(), alpha.imag()}};
|
||||||
auto cl_beta = cl_float2{{beta.real(), beta.imag()}};
|
auto cl_beta = cl_float2{{beta.real(), beta.imag()}};
|
||||||
return clblasCsyr2k(layout, triangle, tran_ab,
|
return clblasCsyr2k(layout, triangle, ab_transpose,
|
||||||
n, k, cl_alpha,
|
n, k, cl_alpha,
|
||||||
a_mat, a_offset, a_ld,
|
a_mat, a_offset, a_ld,
|
||||||
b_mat, b_offset, b_ld, cl_beta,
|
b_mat, b_offset, b_ld, cl_beta,
|
||||||
|
@ -374,7 +374,7 @@ clblasStatus clblasXsyr2k(
|
||||||
num_queues, queues, num_wait_events, wait_events, events);
|
num_queues, queues, num_wait_events, wait_events, events);
|
||||||
}
|
}
|
||||||
clblasStatus clblasXsyr2k(
|
clblasStatus clblasXsyr2k(
|
||||||
clblasOrder layout, clblasUplo triangle, clblasTranspose tran_ab,
|
clblasOrder layout, clblasUplo triangle, clblasTranspose ab_transpose,
|
||||||
size_t n, size_t k, double2 alpha,
|
size_t n, size_t k, double2 alpha,
|
||||||
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
||||||
const cl_mem b_mat, size_t b_offset, size_t b_ld, double2 beta,
|
const cl_mem b_mat, size_t b_offset, size_t b_ld, double2 beta,
|
||||||
|
@ -383,7 +383,7 @@ clblasStatus clblasXsyr2k(
|
||||||
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
auto cl_alpha = cl_double2{{alpha.real(), alpha.imag()}};
|
auto cl_alpha = cl_double2{{alpha.real(), alpha.imag()}};
|
||||||
auto cl_beta = cl_double2{{beta.real(), beta.imag()}};
|
auto cl_beta = cl_double2{{beta.real(), beta.imag()}};
|
||||||
return clblasZsyr2k(layout, triangle, tran_ab,
|
return clblasZsyr2k(layout, triangle, ab_transpose,
|
||||||
n, k, cl_alpha,
|
n, k, cl_alpha,
|
||||||
a_mat, a_offset, a_ld,
|
a_mat, a_offset, a_ld,
|
||||||
b_mat, b_offset, b_ld, cl_beta,
|
b_mat, b_offset, b_ld, cl_beta,
|
||||||
|
@ -391,6 +391,126 @@ clblasStatus clblasXsyr2k(
|
||||||
num_queues, queues, num_wait_events, wait_events, events);
|
num_queues, queues, num_wait_events, wait_events, events);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This calls {clblasStrmm, clblasDtrmm, clblasCtrmm, clblasZtrmm} with the arguments forwarded.
|
||||||
|
clblasStatus clblasXtrmm(
|
||||||
|
clblasOrder layout, clblasSide side, clblasUplo triangle,
|
||||||
|
clblasTranspose a_transpose, clblasDiag diagonal,
|
||||||
|
size_t m, size_t n, float alpha,
|
||||||
|
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
||||||
|
const cl_mem b_mat, size_t b_offset, size_t b_ld,
|
||||||
|
cl_uint num_queues, cl_command_queue *queues,
|
||||||
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
|
return clblasStrmm(layout, side, triangle, a_transpose, diagonal,
|
||||||
|
m, n, alpha,
|
||||||
|
a_mat, a_offset, a_ld,
|
||||||
|
b_mat, b_offset, b_ld,
|
||||||
|
num_queues, queues, num_wait_events, wait_events, events);
|
||||||
|
}
|
||||||
|
clblasStatus clblasXtrmm(
|
||||||
|
clblasOrder layout, clblasSide side, clblasUplo triangle,
|
||||||
|
clblasTranspose a_transpose, clblasDiag diagonal,
|
||||||
|
size_t m, size_t n, double alpha,
|
||||||
|
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
||||||
|
const cl_mem b_mat, size_t b_offset, size_t b_ld,
|
||||||
|
cl_uint num_queues, cl_command_queue *queues,
|
||||||
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
|
return clblasDtrmm(layout, side, triangle, a_transpose, diagonal,
|
||||||
|
m, n, alpha,
|
||||||
|
a_mat, a_offset, a_ld,
|
||||||
|
b_mat, b_offset, b_ld,
|
||||||
|
num_queues, queues, num_wait_events, wait_events, events);
|
||||||
|
}
|
||||||
|
clblasStatus clblasXtrmm(
|
||||||
|
clblasOrder layout, clblasSide side, clblasUplo triangle,
|
||||||
|
clblasTranspose a_transpose, clblasDiag diagonal,
|
||||||
|
size_t m, size_t n, float2 alpha,
|
||||||
|
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
||||||
|
const cl_mem b_mat, size_t b_offset, size_t b_ld,
|
||||||
|
cl_uint num_queues, cl_command_queue *queues,
|
||||||
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
|
auto cl_alpha = cl_float2{{alpha.real(), alpha.imag()}};
|
||||||
|
return clblasCtrmm(layout, side, triangle, a_transpose, diagonal,
|
||||||
|
m, n, cl_alpha,
|
||||||
|
a_mat, a_offset, a_ld,
|
||||||
|
b_mat, b_offset, b_ld,
|
||||||
|
num_queues, queues, num_wait_events, wait_events, events);
|
||||||
|
}
|
||||||
|
clblasStatus clblasXtrmm(
|
||||||
|
clblasOrder layout, clblasSide side, clblasUplo triangle,
|
||||||
|
clblasTranspose a_transpose, clblasDiag diagonal,
|
||||||
|
size_t m, size_t n, double2 alpha,
|
||||||
|
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
||||||
|
const cl_mem b_mat, size_t b_offset, size_t b_ld,
|
||||||
|
cl_uint num_queues, cl_command_queue *queues,
|
||||||
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
|
auto cl_alpha = cl_double2{{alpha.real(), alpha.imag()}};
|
||||||
|
return clblasZtrmm(layout, side, triangle, a_transpose, diagonal,
|
||||||
|
m, n, cl_alpha,
|
||||||
|
a_mat, a_offset, a_ld,
|
||||||
|
b_mat, b_offset, b_ld,
|
||||||
|
num_queues, queues, num_wait_events, wait_events, events);
|
||||||
|
}
|
||||||
|
|
||||||
|
// This calls {clblasStrsm, clblasDtrsm, clblasCtrsm, clblasZtrsm} with the arguments forwarded.
|
||||||
|
clblasStatus clblasXtrsm(
|
||||||
|
clblasOrder layout, clblasSide side, clblasUplo triangle,
|
||||||
|
clblasTranspose a_transpose, clblasDiag diagonal,
|
||||||
|
size_t m, size_t n, float alpha,
|
||||||
|
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
||||||
|
const cl_mem b_mat, size_t b_offset, size_t b_ld,
|
||||||
|
cl_uint num_queues, cl_command_queue *queues,
|
||||||
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
|
return clblasStrsm(layout, side, triangle, a_transpose, diagonal,
|
||||||
|
m, n, alpha,
|
||||||
|
a_mat, a_offset, a_ld,
|
||||||
|
b_mat, b_offset, b_ld,
|
||||||
|
num_queues, queues, num_wait_events, wait_events, events);
|
||||||
|
}
|
||||||
|
clblasStatus clblasXtrsm(
|
||||||
|
clblasOrder layout, clblasSide side, clblasUplo triangle,
|
||||||
|
clblasTranspose a_transpose, clblasDiag diagonal,
|
||||||
|
size_t m, size_t n, double alpha,
|
||||||
|
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
||||||
|
const cl_mem b_mat, size_t b_offset, size_t b_ld,
|
||||||
|
cl_uint num_queues, cl_command_queue *queues,
|
||||||
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
|
return clblasDtrsm(layout, side, triangle, a_transpose, diagonal,
|
||||||
|
m, n, alpha,
|
||||||
|
a_mat, a_offset, a_ld,
|
||||||
|
b_mat, b_offset, b_ld,
|
||||||
|
num_queues, queues, num_wait_events, wait_events, events);
|
||||||
|
}
|
||||||
|
clblasStatus clblasXtrsm(
|
||||||
|
clblasOrder layout, clblasSide side, clblasUplo triangle,
|
||||||
|
clblasTranspose a_transpose, clblasDiag diagonal,
|
||||||
|
size_t m, size_t n, float2 alpha,
|
||||||
|
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
||||||
|
const cl_mem b_mat, size_t b_offset, size_t b_ld,
|
||||||
|
cl_uint num_queues, cl_command_queue *queues,
|
||||||
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
|
auto cl_alpha = cl_float2{{alpha.real(), alpha.imag()}};
|
||||||
|
return clblasCtrsm(layout, side, triangle, a_transpose, diagonal,
|
||||||
|
m, n, cl_alpha,
|
||||||
|
a_mat, a_offset, a_ld,
|
||||||
|
b_mat, b_offset, b_ld,
|
||||||
|
num_queues, queues, num_wait_events, wait_events, events);
|
||||||
|
}
|
||||||
|
clblasStatus clblasXtrsm(
|
||||||
|
clblasOrder layout, clblasSide side, clblasUplo triangle,
|
||||||
|
clblasTranspose a_transpose, clblasDiag diagonal,
|
||||||
|
size_t m, size_t n, double2 alpha,
|
||||||
|
const cl_mem a_mat, size_t a_offset, size_t a_ld,
|
||||||
|
const cl_mem b_mat, size_t b_offset, size_t b_ld,
|
||||||
|
cl_uint num_queues, cl_command_queue *queues,
|
||||||
|
cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) {
|
||||||
|
auto cl_alpha = cl_double2{{alpha.real(), alpha.imag()}};
|
||||||
|
return clblasZtrsm(layout, side, triangle, a_transpose, diagonal,
|
||||||
|
m, n, cl_alpha,
|
||||||
|
a_mat, a_offset, a_ld,
|
||||||
|
b_mat, b_offset, b_ld,
|
||||||
|
num_queues, queues, num_wait_events, wait_events, events);
|
||||||
|
}
|
||||||
|
|
||||||
// =================================================================================================
|
// =================================================================================================
|
||||||
} // namespace clblast
|
} // namespace clblast
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue