codekingpro/portable-devtools
114k
1/*
2 * Copyright 1993-2019 NVIDIA Corporation. All rights reserved.
3 *
4 * NOTICE TO LICENSEE:
5 *
6 * This source code and/or documentation ("Licensed Deliverables") are
7 * subject to NVIDIA intellectual property rights under U.S. and
8 * international Copyright laws.
9 *
10 * These Licensed Deliverables contained herein is PROPRIETARY and
11 * CONFIDENTIAL to NVIDIA and is being provided under the terms and
12 * conditions of a form of NVIDIA software license agreement by and
13 * between NVIDIA and Licensee ("License Agreement") or electronically
14 * accepted by Licensee. Notwithstanding any terms or conditions to
15 * the contrary in the License Agreement, reproduction or disclosure
16 * of the Licensed Deliverables to any third party without the express
17 * written consent of NVIDIA is prohibited.
18 *
19 * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
20 * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE
21 * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. IT IS
22 * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.
23 * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED
24 * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY,
25 * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.
26 * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
27 * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY
28 * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY
29 * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
30 * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
31 * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
32 * OF THESE LICENSED DELIVERABLES.
33 *
34 * U.S. Government End Users. These Licensed Deliverables are a
35 * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT
36 * 1995), consisting of "commercial computer software" and "commercial
37 * computer software documentation" as such terms are used in 48
38 * C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government
39 * only as a commercial end item. Consistent with 48 C.F.R.12.212 and
40 * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all
41 * U.S. Government End Users acquire the Licensed Deliverables with
42 * only those rights set forth herein.
43 *
44 * Any use of the Licensed Deliverables in individual and commercial
45 * software must include, in the user documentation and internal
46 * comments to the code, the above Disclaimer and U.S. Government End
47 * Users Notice.
48 */
49
50/*
51 * This is the public header file for the new CUBLAS library API, it mapped the generic
52 * Cublas name functions to the actual _v2 implementations.
53 */
54
55#if !defined(CUBLAS_V2_H_)
56#define CUBLAS_V2_H_
57
58#if defined(CUBLAS_H_)
59#error "It is an error to include both cublas.h and cublas_v2.h"
60#endif
61
62#undef CUBLASAPI
63#ifdef __CUDACC__
64#define CUBLASAPI __host__ __device__
65#else
66#define CUBLASAPI
67#endif
68
69#include "cublas_api.h"
70
71#define cublasCreate cublasCreate_v2
72#define cublasDestroy cublasDestroy_v2
73#define cublasGetVersion cublasGetVersion_v2
74#define cublasSetWorkspace cublasSetWorkspace_v2
75#define cublasSetStream cublasSetStream_v2
76#define cublasGetStream cublasGetStream_v2
77#define cublasGetPointerMode cublasGetPointerMode_v2
78#define cublasSetPointerMode cublasSetPointerMode_v2
79
80/* 32-bit integer */
81
82/* Blas1 Routines */
83
84#define cublasSnrm2 cublasSnrm2_v2
85#define cublasDnrm2 cublasDnrm2_v2
86#define cublasScnrm2 cublasScnrm2_v2
87#define cublasDznrm2 cublasDznrm2_v2
88
89#define cublasSdot cublasSdot_v2
90#define cublasDdot cublasDdot_v2
91#define cublasCdotu cublasCdotu_v2
92#define cublasCdotc cublasCdotc_v2
93#define cublasZdotu cublasZdotu_v2
94#define cublasZdotc cublasZdotc_v2
95
96#define cublasSscal cublasSscal_v2
97#define cublasDscal cublasDscal_v2
98#define cublasCscal cublasCscal_v2
99#define cublasCsscal cublasCsscal_v2
100#define cublasZscal cublasZscal_v2
101#define cublasZdscal cublasZdscal_v2
102
103#define cublasSaxpy cublasSaxpy_v2
104#define cublasDaxpy cublasDaxpy_v2
105#define cublasCaxpy cublasCaxpy_v2
106#define cublasZaxpy cublasZaxpy_v2
107
108#define cublasScopy cublasScopy_v2
109#define cublasDcopy cublasDcopy_v2
110#define cublasCcopy cublasCcopy_v2
111#define cublasZcopy cublasZcopy_v2
112
113#define cublasSswap cublasSswap_v2
114#define cublasDswap cublasDswap_v2
115#define cublasCswap cublasCswap_v2
116#define cublasZswap cublasZswap_v2
117
118#define cublasIsamax cublasIsamax_v2
119#define cublasIdamax cublasIdamax_v2
120#define cublasIcamax cublasIcamax_v2
121#define cublasIzamax cublasIzamax_v2
122
123#define cublasIsamin cublasIsamin_v2
124#define cublasIdamin cublasIdamin_v2
125#define cublasIcamin cublasIcamin_v2
126#define cublasIzamin cublasIzamin_v2
127
128#define cublasSasum cublasSasum_v2
129#define cublasDasum cublasDasum_v2
130#define cublasScasum cublasScasum_v2
131#define cublasDzasum cublasDzasum_v2
132
133#define cublasSrot cublasSrot_v2
134#define cublasDrot cublasDrot_v2
135#define cublasCrot cublasCrot_v2
136#define cublasCsrot cublasCsrot_v2
137#define cublasZrot cublasZrot_v2
138#define cublasZdrot cublasZdrot_v2
139
140#define cublasSrotg cublasSrotg_v2
141#define cublasDrotg cublasDrotg_v2
142#define cublasCrotg cublasCrotg_v2
143#define cublasZrotg cublasZrotg_v2
144
145#define cublasSrotm cublasSrotm_v2
146#define cublasDrotm cublasDrotm_v2
147
148#define cublasSrotmg cublasSrotmg_v2
149#define cublasDrotmg cublasDrotmg_v2
150
151/* Blas2 Routines */
152
153#define cublasSgemv cublasSgemv_v2
154#define cublasDgemv cublasDgemv_v2
155#define cublasCgemv cublasCgemv_v2
156#define cublasZgemv cublasZgemv_v2
157
158#define cublasSgbmv cublasSgbmv_v2
159#define cublasDgbmv cublasDgbmv_v2
160#define cublasCgbmv cublasCgbmv_v2
161#define cublasZgbmv cublasZgbmv_v2
162
163#define cublasStrmv cublasStrmv_v2
164#define cublasDtrmv cublasDtrmv_v2
165#define cublasCtrmv cublasCtrmv_v2
166#define cublasZtrmv cublasZtrmv_v2
167
168#define cublasStbmv cublasStbmv_v2
169#define cublasDtbmv cublasDtbmv_v2
170#define cublasCtbmv cublasCtbmv_v2
171#define cublasZtbmv cublasZtbmv_v2
172
173#define cublasStpmv cublasStpmv_v2
174#define cublasDtpmv cublasDtpmv_v2
175#define cublasCtpmv cublasCtpmv_v2
176#define cublasZtpmv cublasZtpmv_v2
177
178#define cublasStrsv cublasStrsv_v2
179#define cublasDtrsv cublasDtrsv_v2
180#define cublasCtrsv cublasCtrsv_v2
181#define cublasZtrsv cublasZtrsv_v2
182
183#define cublasStpsv cublasStpsv_v2
184#define cublasDtpsv cublasDtpsv_v2
185#define cublasCtpsv cublasCtpsv_v2
186#define cublasZtpsv cublasZtpsv_v2
187
188#define cublasStbsv cublasStbsv_v2
189#define cublasDtbsv cublasDtbsv_v2
190#define cublasCtbsv cublasCtbsv_v2
191#define cublasZtbsv cublasZtbsv_v2
192
193#define cublasSsymv cublasSsymv_v2
194#define cublasDsymv cublasDsymv_v2
195#define cublasCsymv cublasCsymv_v2
196#define cublasZsymv cublasZsymv_v2
197#define cublasChemv cublasChemv_v2
198#define cublasZhemv cublasZhemv_v2
199
200#define cublasSsbmv cublasSsbmv_v2
201#define cublasDsbmv cublasDsbmv_v2
202#define cublasChbmv cublasChbmv_v2
203#define cublasZhbmv cublasZhbmv_v2
204
205#define cublasSspmv cublasSspmv_v2
206#define cublasDspmv cublasDspmv_v2
207#define cublasChpmv cublasChpmv_v2
208#define cublasZhpmv cublasZhpmv_v2
209
210#define cublasSger cublasSger_v2
211#define cublasDger cublasDger_v2
212#define cublasCgeru cublasCgeru_v2
213#define cublasCgerc cublasCgerc_v2
214#define cublasZgeru cublasZgeru_v2
215#define cublasZgerc cublasZgerc_v2
216
217#define cublasSsyr cublasSsyr_v2
218#define cublasDsyr cublasDsyr_v2
219#define cublasCsyr cublasCsyr_v2
220#define cublasZsyr cublasZsyr_v2
221#define cublasCher cublasCher_v2
222#define cublasZher cublasZher_v2
223
224#define cublasSspr cublasSspr_v2
225#define cublasDspr cublasDspr_v2
226#define cublasChpr cublasChpr_v2
227#define cublasZhpr cublasZhpr_v2
228
229#define cublasSsyr2 cublasSsyr2_v2
230#define cublasDsyr2 cublasDsyr2_v2
231#define cublasCsyr2 cublasCsyr2_v2
232#define cublasZsyr2 cublasZsyr2_v2
233#define cublasCher2 cublasCher2_v2
234#define cublasZher2 cublasZher2_v2
235
236#define cublasSspr2 cublasSspr2_v2
237#define cublasDspr2 cublasDspr2_v2
238#define cublasChpr2 cublasChpr2_v2
239#define cublasZhpr2 cublasZhpr2_v2
240
241/* Blas3 Routines */
242
243#define cublasSgemm cublasSgemm_v2
244#define cublasDgemm cublasDgemm_v2
245#define cublasCgemm cublasCgemm_v2
246#define cublasZgemm cublasZgemm_v2
247
248#define cublasSsyrk cublasSsyrk_v2
249#define cublasDsyrk cublasDsyrk_v2
250#define cublasCsyrk cublasCsyrk_v2
251#define cublasZsyrk cublasZsyrk_v2
252#define cublasCherk cublasCherk_v2
253#define cublasZherk cublasZherk_v2
254
255#define cublasSsyr2k cublasSsyr2k_v2
256#define cublasDsyr2k cublasDsyr2k_v2
257#define cublasCsyr2k cublasCsyr2k_v2
258#define cublasZsyr2k cublasZsyr2k_v2
259#define cublasCher2k cublasCher2k_v2
260#define cublasZher2k cublasZher2k_v2
261
262#define cublasSsymm cublasSsymm_v2
263#define cublasDsymm cublasDsymm_v2
264#define cublasCsymm cublasCsymm_v2
265#define cublasZsymm cublasZsymm_v2
266#define cublasChemm cublasChemm_v2
267#define cublasZhemm cublasZhemm_v2
268
269#define cublasStrsm cublasStrsm_v2
270#define cublasDtrsm cublasDtrsm_v2
271#define cublasCtrsm cublasCtrsm_v2
272#define cublasZtrsm cublasZtrsm_v2
273
274#define cublasStrmm cublasStrmm_v2
275#define cublasDtrmm cublasDtrmm_v2
276#define cublasCtrmm cublasCtrmm_v2
277#define cublasZtrmm cublasZtrmm_v2
278
279/* 64-bit integer */
280
281/* Blas1 Routines */
282
283#define cublasSnrm2_64 cublasSnrm2_v2_64
284#define cublasDnrm2_64 cublasDnrm2_v2_64
285#define cublasScnrm2_64 cublasScnrm2_v2_64
286#define cublasDznrm2_64 cublasDznrm2_v2_64
287
288#define cublasSdot_64 cublasSdot_v2_64
289#define cublasDdot_64 cublasDdot_v2_64
290#define cublasCdotu_64 cublasCdotu_v2_64
291#define cublasCdotc_64 cublasCdotc_v2_64
292#define cublasZdotu_64 cublasZdotu_v2_64
293#define cublasZdotc_64 cublasZdotc_v2_64
294
295#define cublasSscal_64 cublasSscal_v2_64
296#define cublasDscal_64 cublasDscal_v2_64
297#define cublasCscal_64 cublasCscal_v2_64
298#define cublasCsscal_64 cublasCsscal_v2_64
299#define cublasZscal_64 cublasZscal_v2_64
300#define cublasZdscal_64 cublasZdscal_v2_64
301
302#define cublasSaxpy_64 cublasSaxpy_v2_64
303#define cublasDaxpy_64 cublasDaxpy_v2_64
304#define cublasCaxpy_64 cublasCaxpy_v2_64
305#define cublasZaxpy_64 cublasZaxpy_v2_64
306
307#define cublasScopy_64 cublasScopy_v2_64
308#define cublasDcopy_64 cublasDcopy_v2_64
309#define cublasCcopy_64 cublasCcopy_v2_64
310#define cublasZcopy_64 cublasZcopy_v2_64
311
312#define cublasSswap_64 cublasSswap_v2_64
313#define cublasDswap_64 cublasDswap_v2_64
314#define cublasCswap_64 cublasCswap_v2_64
315#define cublasZswap_64 cublasZswap_v2_64
316
317#define cublasIsamax_64 cublasIsamax_v2_64
318#define cublasIdamax_64 cublasIdamax_v2_64
319#define cublasIcamax_64 cublasIcamax_v2_64
320#define cublasIzamax_64 cublasIzamax_v2_64
321
322#define cublasIsamin_64 cublasIsamin_v2_64
323#define cublasIdamin_64 cublasIdamin_v2_64
324#define cublasIcamin_64 cublasIcamin_v2_64
325#define cublasIzamin_64 cublasIzamin_v2_64
326
327#define cublasSasum_64 cublasSasum_v2_64
328#define cublasDasum_64 cublasDasum_v2_64
329#define cublasScasum_64 cublasScasum_v2_64
330#define cublasDzasum_64 cublasDzasum_v2_64
331
332#define cublasSrot_64 cublasSrot_v2_64
333#define cublasDrot_64 cublasDrot_v2_64
334#define cublasCrot_64 cublasCrot_v2_64
335#define cublasCsrot_64 cublasCsrot_v2_64
336#define cublasZrot_64 cublasZrot_v2_64
337#define cublasZdrot_64 cublasZdrot_v2_64
338
339#define cublasSrotg_64 cublasSrotg_v2_64
340#define cublasDrotg_64 cublasDrotg_v2_64
341#define cublasCrotg_64 cublasCrotg_v2_64
342#define cublasZrotg_64 cublasZrotg_v2_64
343
344#define cublasSrotm_64 cublasSrotm_v2_64
345#define cublasDrotm_64 cublasDrotm_v2_64
346
347#define cublasSrotmg_64 cublasSrotmg_v2_64
348#define cublasDrotmg_64 cublasDrotmg_v2_64
349
350/* Blas2 Routines */
351
352#define cublasSgemv_64 cublasSgemv_v2_64
353#define cublasDgemv_64 cublasDgemv_v2_64
354#define cublasCgemv_64 cublasCgemv_v2_64
355#define cublasZgemv_64 cublasZgemv_v2_64
356
357#define cublasSgbmv_64 cublasSgbmv_v2_64
358#define cublasDgbmv_64 cublasDgbmv_v2_64
359#define cublasCgbmv_64 cublasCgbmv_v2_64
360#define cublasZgbmv_64 cublasZgbmv_v2_64
361
362#define cublasStrmv_64 cublasStrmv_v2_64
363#define cublasDtrmv_64 cublasDtrmv_v2_64
364#define cublasCtrmv_64 cublasCtrmv_v2_64
365#define cublasZtrmv_64 cublasZtrmv_v2_64
366
367#define cublasStbmv_64 cublasStbmv_v2_64
368#define cublasDtbmv_64 cublasDtbmv_v2_64
369#define cublasCtbmv_64 cublasCtbmv_v2_64
370#define cublasZtbmv_64 cublasZtbmv_v2_64
371
372#define cublasStpmv_64 cublasStpmv_v2_64
373#define cublasDtpmv_64 cublasDtpmv_v2_64
374#define cublasCtpmv_64 cublasCtpmv_v2_64
375#define cublasZtpmv_64 cublasZtpmv_v2_64
376
377#define cublasStrsv_64 cublasStrsv_v2_64
378#define cublasDtrsv_64 cublasDtrsv_v2_64
379#define cublasCtrsv_64 cublasCtrsv_v2_64
380#define cublasZtrsv_64 cublasZtrsv_v2_64
381
382#define cublasStpsv_64 cublasStpsv_v2_64
383#define cublasDtpsv_64 cublasDtpsv_v2_64
384#define cublasCtpsv_64 cublasCtpsv_v2_64
385#define cublasZtpsv_64 cublasZtpsv_v2_64
386
387#define cublasStbsv_64 cublasStbsv_v2_64
388#define cublasDtbsv_64 cublasDtbsv_v2_64
389#define cublasCtbsv_64 cublasCtbsv_v2_64
390#define cublasZtbsv_64 cublasZtbsv_v2_64
391
392#define cublasSsymv_64 cublasSsymv_v2_64
393#define cublasDsymv_64 cublasDsymv_v2_64
394#define cublasCsymv_64 cublasCsymv_v2_64
395#define cublasZsymv_64 cublasZsymv_v2_64
396#define cublasChemv_64 cublasChemv_v2_64
397#define cublasZhemv_64 cublasZhemv_v2_64
398
399#define cublasSsbmv_64 cublasSsbmv_v2_64
400#define cublasDsbmv_64 cublasDsbmv_v2_64
401#define cublasChbmv_64 cublasChbmv_v2_64
402#define cublasZhbmv_64 cublasZhbmv_v2_64
403
404#define cublasSspmv_64 cublasSspmv_v2_64
405#define cublasDspmv_64 cublasDspmv_v2_64
406#define cublasChpmv_64 cublasChpmv_v2_64
407#define cublasZhpmv_64 cublasZhpmv_v2_64
408
409#define cublasSger_64 cublasSger_v2_64
410#define cublasDger_64 cublasDger_v2_64
411#define cublasCgeru_64 cublasCgeru_v2_64
412#define cublasCgerc_64 cublasCgerc_v2_64
413#define cublasZgeru_64 cublasZgeru_v2_64
414#define cublasZgerc_64 cublasZgerc_v2_64
415
416#define cublasSsyr_64 cublasSsyr_v2_64
417#define cublasDsyr_64 cublasDsyr_v2_64
418#define cublasCsyr_64 cublasCsyr_v2_64
419#define cublasZsyr_64 cublasZsyr_v2_64
420#define cublasCher_64 cublasCher_v2_64
421#define cublasZher_64 cublasZher_v2_64
422
423#define cublasSspr_64 cublasSspr_v2_64
424#define cublasDspr_64 cublasDspr_v2_64
425#define cublasChpr_64 cublasChpr_v2_64
426#define cublasZhpr_64 cublasZhpr_v2_64
427
428#define cublasSsyr2_64 cublasSsyr2_v2_64
429#define cublasDsyr2_64 cublasDsyr2_v2_64
430#define cublasCsyr2_64 cublasCsyr2_v2_64
431#define cublasZsyr2_64 cublasZsyr2_v2_64
432#define cublasCher2_64 cublasCher2_v2_64
433#define cublasZher2_64 cublasZher2_v2_64
434
435#define cublasSspr2_64 cublasSspr2_v2_64
436#define cublasDspr2_64 cublasDspr2_v2_64
437#define cublasChpr2_64 cublasChpr2_v2_64
438#define cublasZhpr2_64 cublasZhpr2_v2_64
439
440/* Blas3 Routines */
441
442#define cublasSgemm_64 cublasSgemm_v2_64
443#define cublasDgemm_64 cublasDgemm_v2_64
444#define cublasCgemm_64 cublasCgemm_v2_64
445#define cublasZgemm_64 cublasZgemm_v2_64
446
447#define cublasSsyrk_64 cublasSsyrk_v2_64
448#define cublasDsyrk_64 cublasDsyrk_v2_64
449#define cublasCsyrk_64 cublasCsyrk_v2_64
450#define cublasZsyrk_64 cublasZsyrk_v2_64
451#define cublasCherk_64 cublasCherk_v2_64
452#define cublasZherk_64 cublasZherk_v2_64
453
454#define cublasSsyr2k_64 cublasSsyr2k_v2_64
455#define cublasDsyr2k_64 cublasDsyr2k_v2_64
456#define cublasCsyr2k_64 cublasCsyr2k_v2_64
457#define cublasZsyr2k_64 cublasZsyr2k_v2_64
458#define cublasCher2k_64 cublasCher2k_v2_64
459#define cublasZher2k_64 cublasZher2k_v2_64
460
461#define cublasSsymm_64 cublasSsymm_v2_64
462#define cublasDsymm_64 cublasDsymm_v2_64
463#define cublasCsymm_64 cublasCsymm_v2_64
464#define cublasZsymm_64 cublasZsymm_v2_64
465#define cublasChemm_64 cublasChemm_v2_64
466#define cublasZhemm_64 cublasZhemm_v2_64
467
468#define cublasStrsm_64 cublasStrsm_v2_64
469#define cublasDtrsm_64 cublasDtrsm_v2_64
470#define cublasCtrsm_64 cublasCtrsm_v2_64
471#define cublasZtrsm_64 cublasZtrsm_v2_64
472
473#define cublasStrmm_64 cublasStrmm_v2_64
474#define cublasDtrmm_64 cublasDtrmm_v2_64
475#define cublasCtrmm_64 cublasCtrmm_v2_64
476#define cublasZtrmm_64 cublasZtrmm_v2_64
477
478#endif /* !defined(CUBLAS_V2_H_) */
479 