54 integer,
public,
parameter :: &
58 integer,
public,
parameter :: &
63 integer,
public,
parameter :: &
67 integer,
public,
parameter :: &
71 integer,
public,
parameter :: &
77 integer,
public,
parameter :: &
78 clblasRowMajor = 101, &
79 clblascolumnmajor = 102
81 integer,
public,
parameter :: &
82 clblasNoTrans = 111, &
86 integer,
public,
parameter :: &
90 integer,
public,
parameter :: &
94 integer,
public,
parameter :: &
99#if defined(HAVE_CLBLAS) || defined(HAVE_CLBLAST)
100 integer,
public,
parameter :: &
101 clblasSuccess = cl_success, &
102 clblasinvalidvalue = cl_invalid_value, &
103 clblasinvalidcommandqueue = cl_invalid_command_queue, &
104 clblasinvalidcontext = cl_invalid_context, &
105 clblasinvalidmemobject = cl_invalid_mem_object, &
106 clblasinvaliddevice = cl_invalid_device, &
107 clblasinvalideventwaitlist = cl_invalid_event_wait_list, &
108 clblasoutofresources = cl_out_of_resources, &
109 clblasoutofhostmemory = cl_out_of_host_memory, &
110 clblasinvalidoperation = cl_invalid_operation, &
111 clblascompilernotavailable = cl_compiler_not_available, &
112 clblasbuildprogramfailure = cl_build_program_failure
114 integer,
public,
parameter :: &
115 clblasNotImplemented = -1024, &
116 clblasnotinitialized = -1023, &
117 clblasinvalidmata = -1022, &
118 clblasinvalidmatb = -1021, &
119 clblasinvalidmatc = -1020, &
120 clblasinvalidvecx = -1019, &
121 clblasinvalidvecy = -1018, &
122 clblasinvaliddim = -1017, &
123 clblasinvalidleaddima = -1016, &
124 clblasinvalidleaddimb = -1015, &
125 clblasinvalidleaddimc = -1014, &
126 clblasinvalidincx = -1013, &
127 clblasinvalidincy = -1012, &
128 clblasinsufficientmemmata = -1011, &
129 clblasinsufficientmemmatb = -1010, &
130 clblasinsufficientmemmatc = -1009, &
131 clblasinsufficientmemvecx = -1008, &
132 clblasinsufficientmemvecy = -1007
135 integer,
public,
parameter :: &
136 clblastInsufficientMemoryTemp = -2050, &
137 clblastinvalidbatchcount = -2049, &
138 clblastinvalidoverridekernel = -2048, &
139 clblastmissingoverrideparameter = -2047, &
140 clblastinvalidlocalmemusage = -2046, &
141 clblastnohalfprecision = -2045, &
142 clblastnodoubleprecision = -2044, &
143 clblastinvalidvectorscalar = -2043, &
144 clblastinsufficientmemoryscalar = -2042, &
145 clblastdatabaseerror = -2041, &
146 clblastunknownerror = -2040, &
147 clblastunexpectederror = -2039
153 interface clblasgetversion
154 subroutine clblasgetversion_low(major, minor, patch, status)
157 integer,
intent(out) :: major
158 integer,
intent(out) :: minor
159 integer,
intent(out) :: patch
160 integer,
intent(out) :: status
161 end subroutine clblasgetversion_low
162 end interface clblasgetversion
164 interface clblassetup
165 subroutine clblassetup_low(status)
168 integer,
intent(out) :: status
169 end subroutine clblassetup_low
170 end interface clblassetup
172 interface clblasteardown
173 subroutine clblasteardown_low()
174 end subroutine clblasteardown_low
175 end interface clblasteardown
179#if defined(HAVE_CLBLAS) || defined(HAVE_CLBLAST)
182 interface clblasdtrsmex
183 subroutine clblasdtrsmex_low(order, side, uplo, transA, diag, M, N, alpha, A, offA, lda, B, offB, ldb, commandQueue, status)
188 integer,
intent(in) :: order
189 integer,
intent(in) :: side
190 integer,
intent(in) :: uplo
191 integer,
intent(in) :: transA
192 integer,
intent(in) :: diag
193 integer(8),
intent(in) :: M
194 integer(8),
intent(in) :: N
195 real(8),
intent(in) :: alpha
196 type(cl_mem),
intent(inout) :: A
197 integer(8),
intent(in) :: offA
198 integer(8),
intent(in) :: lda
199 type(cl_mem),
intent(inout) :: B
200 integer(8),
intent(in) :: offB
201 integer(8),
intent(in) :: ldb
202 type(cl_command_queue),
intent(inout) :: CommandQueue
203 integer,
intent(out) :: status
204 end subroutine clblasdtrsmex_low
205 end interface clblasdtrsmex
209 interface clblasztrsmex
210 subroutine clblasztrsmex_low(order, side, uplo, transA, diag, M, N, alpha, A, offA, lda, B, offB, ldb, commandQueue, status)
215 integer,
intent(in) :: order
216 integer,
intent(in) :: side
217 integer,
intent(in) :: uplo
218 integer,
intent(in) :: transA
219 integer,
intent(in) :: diag
220 integer(8),
intent(in) :: M
221 integer(8),
intent(in) :: N
222 complex(8),
intent(in) :: alpha
223 type(cl_mem),
intent(inout) :: A
224 integer(8),
intent(in) :: offA
225 integer(8),
intent(in) :: lda
226 type(cl_mem),
intent(inout) :: B
227 integer(8),
intent(in) :: offB
228 integer(8),
intent(in) :: ldb
229 type(cl_command_queue),
intent(inout) :: CommandQueue
230 integer,
intent(out) :: status
231 end subroutine clblasztrsmex_low
232 end interface clblasztrsmex
236 interface clblasdgemvex
237 subroutine clblasdgemvex_low(order, transA, M, N, &
238 alpha, A, offA, lda, X, offX, incx, beta, Y, offY, incy, commandQueue, status)
243 integer,
intent(in) :: order
244 integer,
intent(in) :: transA
245 integer(8),
intent(in) :: M
246 integer(8),
intent(in) :: N
247 real(8),
intent(in) :: alpha
248 type(cl_mem),
intent(in) :: A
249 integer(8),
intent(in) :: offA
250 integer(8),
intent(in) :: lda
251 type(cl_mem),
intent(in) :: X
252 integer(8),
intent(in) :: offX
253 integer(8),
intent(in) :: incx
254 real(8),
intent(in) :: beta
255 type(cl_mem),
intent(inout) :: Y
256 integer(8),
intent(in) :: offY
257 integer(8),
intent(in) :: incy
258 type(cl_command_queue),
intent(inout) :: CommandQueue
259 integer,
intent(out) :: status
260 end subroutine clblasdgemvex_low
261 end interface clblasdgemvex
265 interface clblaszgemvex
266 subroutine clblaszgemvex_low(order, transA, M, N, &
267 alpha, A, offA, lda, X, offX, incx, beta, Y, offY, incy, commandQueue, status)
272 integer,
intent(in) :: order
273 integer,
intent(in) :: transA
274 integer(8),
intent(in) :: M
275 integer(8),
intent(in) :: N
276 complex(8),
intent(in) :: alpha
277 type(cl_mem),
intent(in) :: A
278 integer(8),
intent(in) :: offA
279 integer(8),
intent(in) :: lda
280 type(cl_mem),
intent(in) :: X
281 integer(8),
intent(in) :: offX
282 integer(8),
intent(in) :: incx
283 complex(8),
intent(in) :: beta
284 type(cl_mem),
intent(inout) :: Y
285 integer(8),
intent(in) :: offY
286 integer(8),
intent(in) :: incy
287 type(cl_command_queue),
intent(inout) :: CommandQueue
288 integer,
intent(out) :: status
289 end subroutine clblaszgemvex_low
290 end interface clblaszgemvex
295 interface clblasdgemmex
296 subroutine clblasdgemmex_low(order, transA, transB, M, N, K, &
297 alpha, A, offA, lda, B, offB, ldb, beta, C, offC, ldc, commandQueue, status)
302 integer,
intent(in) :: order
303 integer,
intent(in) :: transA
304 integer,
intent(in) :: transB
305 integer(8),
intent(in) :: M
306 integer(8),
intent(in) :: N
307 integer(8),
intent(in) :: K
308 real(8),
intent(in) :: alpha
309 type(cl_mem),
intent(in) :: A
310 integer(8),
intent(in) :: offA
311 integer(8),
intent(in) :: lda
312 type(cl_mem),
intent(in) :: B
313 integer(8),
intent(in) :: offB
314 integer(8),
intent(in) :: ldb
315 real(8),
intent(in) :: beta
316 type(cl_mem),
intent(inout) :: C
317 integer(8),
intent(in) :: offC
318 integer(8),
intent(in) :: ldc
319 type(cl_command_queue),
intent(inout) :: CommandQueue
320 integer,
intent(out) :: status
321 end subroutine clblasdgemmex_low
322 end interface clblasdgemmex
326 interface clblaszgemmex
327 subroutine clblaszgemmex_low(order, transA, transB, M, N, K, &
328 alpha, A, offA, lda, B, offB, ldb, beta, C, offC, ldc, commandQueue, status)
333 integer,
intent(in) :: order
334 integer,
intent(in) :: transA
335 integer,
intent(in) :: transB
336 integer(8),
intent(in) :: M
337 integer(8),
intent(in) :: N
338 integer(8),
intent(in) :: K
339 complex(8),
intent(in) :: alpha
340 type(cl_mem),
intent(in) :: A
341 integer(8),
intent(in) :: offA
342 integer(8),
intent(in) :: lda
343 type(cl_mem),
intent(in) :: B
344 integer(8),
intent(in) :: offB
345 integer(8),
intent(in) :: ldb
346 complex(8),
intent(in) :: beta
347 type(cl_mem),
intent(inout) :: C
348 integer(8),
intent(in) :: offC
349 integer(8),
intent(in) :: ldc
350 type(cl_command_queue),
intent(inout) :: CommandQueue
351 integer,
intent(out) :: status
352 end subroutine clblaszgemmex_low
353 end interface clblaszgemmex
357 interface clblasdsyrkex
358 subroutine clblasdsyrkex_low(order, uplo, transA, N, K, &
359 alpha, A, offA, lda, beta, C, offC, ldc, commandQueue, status)
364 integer,
intent(in) :: order
365 integer,
intent(in) :: uplo
366 integer,
intent(in) :: transA
367 integer(8),
intent(in) :: N
368 integer(8),
intent(in) :: K
369 real(8),
intent(in) :: alpha
370 type(cl_mem),
intent(in) :: A
371 integer(8),
intent(in) :: offA
372 integer(8),
intent(in) :: lda
373 real(8),
intent(in) :: beta
374 type(cl_mem),
intent(inout) :: C
375 integer(8),
intent(in) :: offC
376 integer(8),
intent(in) :: ldc
377 type(cl_command_queue),
intent(inout) :: CommandQueue
378 integer,
intent(out) :: status
379 end subroutine clblasdsyrkex_low
380 end interface clblasdsyrkex
383 interface clblaszherkex
384 subroutine clblaszherkex_low(order, uplo, transA, N, K, &
385 alpha, A, offA, lda, beta, C, offC, ldc, commandQueue, status)
390 integer,
intent(in) :: order
391 integer,
intent(in) :: uplo
392 integer,
intent(in) :: transA
393 integer(8),
intent(in) :: N
394 integer(8),
intent(in) :: K
395 real(8),
intent(in) :: alpha
396 type(cl_mem),
intent(in) :: A
397 integer(8),
intent(in) :: offA
398 integer(8),
intent(in) :: lda
399 real(8),
intent(in) :: beta
400 type(cl_mem),
intent(inout) :: C
401 integer(8),
intent(in) :: offC
402 integer(8),
intent(in) :: ldc
403 type(cl_command_queue),
intent(inout) :: CommandQueue
404 integer,
intent(out) :: status
405 end subroutine clblaszherkex_low
406 end interface clblaszherkex
412 subroutine clblasddot_low(N, dotProduct, offDP, X, offx, incx, Y, offY, incy, scratchBuff, CommandQueue, status)
417 integer(8),
intent(in) :: N
418 type(cl_mem),
intent(inout) :: dotProduct
419 integer(8),
intent(in) :: offDP
420 type(cl_mem),
intent(in) :: X
421 integer(8),
intent(in) :: offX
422 integer,
intent(in) :: incx
423 type(cl_mem),
intent(in) :: Y
424 integer(8),
intent(in) :: offy
425 integer,
intent(in) :: incy
426 type(cl_mem),
intent(inout) :: scratchBuff
427 type(cl_command_queue),
intent(inout) :: CommandQueue
428 integer,
intent(out) :: status
429 end subroutine clblasddot_low
430 end interface clblasddot
435 interface clblaszdotc
436 subroutine clblaszdotc_low(N, dotProduct, offDP, X, offx, incx, Y, offY, incy, scratchBuff, CommandQueue, status)
441 integer(8),
intent(in) :: N
442 type(cl_mem),
intent(inout) :: dotProduct
443 integer(8),
intent(in) :: offDP
444 type(cl_mem),
intent(in) :: X
445 integer(8),
intent(in) :: offX
446 integer,
intent(in) :: incx
447 type(cl_mem),
intent(in) :: Y
448 integer(8),
intent(in) :: offy
449 integer,
intent(in) :: incy
450 type(cl_mem),
intent(inout) :: scratchBuff
451 type(cl_command_queue),
intent(inout) :: CommandQueue
452 integer,
intent(out) :: status
453 end subroutine clblaszdotc_low
454 end interface clblaszdotc
458 interface clblaszdotu
459 subroutine clblaszdotu_low(N, dotProduct, offDP, X, offx, incx, Y, offY, incy, scratchBuff, CommandQueue, status)
464 integer(8),
intent(in) :: N
465 type(cl_mem),
intent(inout) :: dotProduct
466 integer(8),
intent(in) :: offDP
467 type(cl_mem),
intent(in) :: X
468 integer(8),
intent(in) :: offX
469 integer,
intent(in) :: incx
470 type(cl_mem),
intent(in) :: Y
471 integer(8),
intent(in) :: offy
472 integer,
intent(in) :: incy
473 type(cl_mem),
intent(inout) :: scratchBuff
474 type(cl_command_queue),
intent(inout) :: CommandQueue
475 integer,
intent(out) :: status
476 end subroutine clblaszdotu_low
477 end interface clblaszdotu
482 interface clblasdnrm2
483 subroutine clblasdnrm2_low(N, NRM2, offNRM2, X, offx, incx, scratchBuff, CommandQueue, status)
488 integer(8),
intent(in) :: N
489 type(cl_mem),
intent(inout) :: NRM2
490 integer(8),
intent(in) :: offNRM2
491 type(cl_mem),
intent(in) :: X
492 integer(8),
intent(in) :: offX
493 integer,
intent(in) :: incx
494 type(cl_mem),
intent(inout) :: scratchBuff
495 type(cl_command_queue),
intent(inout) :: CommandQueue
496 integer,
intent(out) :: status
497 end subroutine clblasdnrm2_low
498 end interface clblasdnrm2
502 interface clblasdznrm2
503 subroutine clblasdznrm2_low(N, NRM2, offNRM2, X, offx, incx, scratchBuff, CommandQueue, status)
508 integer(8),
intent(in) :: N
509 type(cl_mem),
intent(inout) :: NRM2
510 integer(8),
intent(in) :: offNRM2
511 type(cl_mem),
intent(in) :: X
512 integer(8),
intent(in) :: offX
513 integer,
intent(in) :: incx
514 type(cl_mem),
intent(inout) :: scratchBuff
515 type(cl_command_queue),
intent(inout) :: CommandQueue
516 integer,
intent(out) :: status
517 end subroutine clblasdznrm2_low
518 end interface clblasdznrm2