Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
nvblas.h825 linesDownload Raw Back to include
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#if !defined(NVBLAS_H_)
51#define NVBLAS_H_
52
53#include "driver_types.h"
54#include "cuComplex.h" /* import complex data type */
55
56#if defined(__cplusplus)
57extern "C" {
58#endif
59
60/* GEMM */
61void sgemm_(const char* transa,
62            const char* transb,
63            const int* m,
64            const int* n,
65            const int* k,
66            const float* alpha,
67            const float* a,
68            const int* lda,
69            const float* b,
70            const int* ldb,
71            const float* beta,
72            float* c,
73            const int* ldc);
74
75void dgemm_(const char* transa,
76            const char* transb,
77            const int* m,
78            const int* n,
79            const int* k,
80            const double* alpha,
81            const double* a,
82            const int* lda,
83            const double* b,
84            const int* ldb,
85            const double* beta,
86            double* c,
87            const int* ldc);
88
89void cgemm_(const char* transa,
90            const char* transb,
91            const int* m,
92            const int* n,
93            const int* k,
94            const cuComplex* alpha,
95            const cuComplex* a,
96            const int* lda,
97            const cuComplex* b,
98            const int* ldb,
99            const cuComplex* beta,
100            cuComplex* c,
101            const int* ldc);
102
103void zgemm_(const char* transa,
104            const char* transb,
105            const int* m,
106            const int* n,
107            const int* k,
108            const cuDoubleComplex* alpha,
109            const cuDoubleComplex* a,
110            const int* lda,
111            const cuDoubleComplex* b,
112            const int* ldb,
113            const cuDoubleComplex* beta,
114            cuDoubleComplex* c,
115            const int* ldc);
116
117void sgemm(const char* transa,
118           const char* transb,
119           const int* m,
120           const int* n,
121           const int* k,
122           const float* alpha,
123           const float* a,
124           const int* lda,
125           const float* b,
126           const int* ldb,
127           const float* beta,
128           float* c,
129           const int* ldc);
130
131void dgemm(const char* transa,
132           const char* transb,
133           const int* m,
134           const int* n,
135           const int* k,
136           const double* alpha,
137           const double* a,
138           const int* lda,
139           const double* b,
140           const int* ldb,
141           const double* beta,
142           double* c,
143           const int* ldc);
144
145void cgemm(const char* transa,
146           const char* transb,
147           const int* m,
148           const int* n,
149           const int* k,
150           const cuComplex* alpha,
151           const cuComplex* a,
152           const int* lda,
153           const cuComplex* b,
154           const int* ldb,
155           const cuComplex* beta,
156           cuComplex* c,
157           const int* ldc);
158
159void zgemm(const char* transa,
160           const char* transb,
161           const int* m,
162           const int* n,
163           const int* k,
164           const cuDoubleComplex* alpha,
165           const cuDoubleComplex* a,
166           const int* lda,
167           const cuDoubleComplex* b,
168           const int* ldb,
169           const cuDoubleComplex* beta,
170           cuDoubleComplex* c,
171           const int* ldc);
172
173/* SYRK */
174void ssyrk_(const char* uplo,
175            const char* trans,
176            const int* n,
177            const int* k,
178            const float* alpha,
179            const float* a,
180            const int* lda,
181            const float* beta,
182            float* c,
183            const int* ldc);
184
185void dsyrk_(const char* uplo,
186            const char* trans,
187            const int* n,
188            const int* k,
189            const double* alpha,
190            const double* a,
191            const int* lda,
192            const double* beta,
193            double* c,
194            const int* ldc);
195
196void csyrk_(const char* uplo,
197            const char* trans,
198            const int* n,
199            const int* k,
200            const cuComplex* alpha,
201            const cuComplex* a,
202            const int* lda,
203            const cuComplex* beta,
204            cuComplex* c,
205            const int* ldc);
206
207void zsyrk_(const char* uplo,
208            const char* trans,
209            const int* n,
210            const int* k,
211            const cuDoubleComplex* alpha,
212            const cuDoubleComplex* a,
213            const int* lda,
214            const cuDoubleComplex* beta,
215            cuDoubleComplex* c,
216            const int* ldc);
217
218void ssyrk(const char* uplo,
219           const char* trans,
220           const int* n,
221           const int* k,
222           const float* alpha,
223           const float* a,
224           const int* lda,
225           const float* beta,
226           float* c,
227           const int* ldc);
228
229void dsyrk(const char* uplo,
230           const char* trans,
231           const int* n,
232           const int* k,
233           const double* alpha,
234           const double* a,
235           const int* lda,
236           const double* beta,
237           double* c,
238           const int* ldc);
239
240void csyrk(const char* uplo,
241           const char* trans,
242           const int* n,
243           const int* k,
244           const cuComplex* alpha,
245           const cuComplex* a,
246           const int* lda,
247           const cuComplex* beta,
248           cuComplex* c,
249           const int* ldc);
250
251void zsyrk(const char* uplo,
252           const char* trans,
253           const int* n,
254           const int* k,
255           const cuDoubleComplex* alpha,
256           const cuDoubleComplex* a,
257           const int* lda,
258           const cuDoubleComplex* beta,
259           cuDoubleComplex* c,
260           const int* ldc);
261
262/* HERK */
263void cherk_(const char* uplo,
264            const char* trans,
265            const int* n,
266            const int* k,
267            const float* alpha,
268            const cuComplex* a,
269            const int* lda,
270            const float* beta,
271            cuComplex* c,
272            const int* ldc);
273
274void zherk_(const char* uplo,
275            const char* trans,
276            const int* n,
277            const int* k,
278            const double* alpha,
279            const cuDoubleComplex* a,
280            const int* lda,
281            const double* beta,
282            cuDoubleComplex* c,
283            const int* ldc);
284
285void cherk(const char* uplo,
286           const char* trans,
287           const int* n,
288           const int* k,
289           const float* alpha,
290           const cuComplex* a,
291           const int* lda,
292           const float* beta,
293           cuComplex* c,
294           const int* ldc);
295
296void zherk(const char* uplo,
297           const char* trans,
298           const int* n,
299           const int* k,
300           const double* alpha,
301           const cuDoubleComplex* a,
302           const int* lda,
303           const double* beta,
304           cuDoubleComplex* c,
305           const int* ldc);
306
307/* TRSM */
308void strsm_(const char* side,
309            const char* uplo,
310            const char* transa,
311            const char* diag,
312            const int* m,
313            const int* n,
314            const float* alpha,
315            const float* a,
316            const int* lda,
317            float* b,
318            const int* ldb);
319
320void dtrsm_(const char* side,
321            const char* uplo,
322            const char* transa,
323            const char* diag,
324            const int* m,
325            const int* n,
326            const double* alpha,
327            const double* a,
328            const int* lda,
329            double* b,
330            const int* ldb);
331
332void ctrsm_(const char* side,
333            const char* uplo,
334            const char* transa,
335            const char* diag,
336            const int* m,
337            const int* n,
338            const cuComplex* alpha,
339            const cuComplex* a,
340            const int* lda,
341            cuComplex* b,
342            const int* ldb);
343
344void ztrsm_(const char* side,
345            const char* uplo,
346            const char* transa,
347            const char* diag,
348            const int* m,
349            const int* n,
350            const cuDoubleComplex* alpha,
351            const cuDoubleComplex* a,
352            const int* lda,
353            cuDoubleComplex* b,
354            const int* ldb);
355
356void strsm(const char* side,
357           const char* uplo,
358           const char* transa,
359           const char* diag,
360           const int* m,
361           const int* n,
362           const float* alpha,
363           const float* a,
364           const int* lda,
365           float* b,
366           const int* ldb);
367
368void dtrsm(const char* side,
369           const char* uplo,
370           const char* transa,
371           const char* diag,
372           const int* m,
373           const int* n,
374           const double* alpha,
375           const double* a,
376           const int* lda,
377           double* b,
378           const int* ldb);
379
380void ctrsm(const char* side,
381           const char* uplo,
382           const char* transa,
383           const char* diag,
384           const int* m,
385           const int* n,
386           const cuComplex* alpha,
387           const cuComplex* a,
388           const int* lda,
389           cuComplex* b,
390           const int* ldb);
391
392void ztrsm(const char* side,
393           const char* uplo,
394           const char* transa,
395           const char* diag,
396           const int* m,
397           const int* n,
398           const cuDoubleComplex* alpha,
399           const cuDoubleComplex* a,
400           const int* lda,
401           cuDoubleComplex* b,
402           const int* ldb);
403
404/* SYMM */
405void ssymm_(const char* side,
406            const char* uplo,
407            const int* m,
408            const int* n,
409            const float* alpha,
410            const float* a,
411            const int* lda,
412            const float* b,
413            const int* ldb,
414            const float* beta,
415            float* c,
416            const int* ldc);
417
418void dsymm_(const char* side,
419            const char* uplo,
420            const int* m,
421            const int* n,
422            const double* alpha,
423            const double* a,
424            const int* lda,
425            const double* b,
426            const int* ldb,
427            const double* beta,
428            double* c,
429            const int* ldc);
430
431void csymm_(const char* side,
432            const char* uplo,
433            const int* m,
434            const int* n,
435            const cuComplex* alpha,
436            const cuComplex* a,
437            const int* lda,
438            const cuComplex* b,
439            const int* ldb,
440            const cuComplex* beta,
441            cuComplex* c,
442            const int* ldc);
443
444void zsymm_(const char* side,
445            const char* uplo,
446            const int* m,
447            const int* n,
448            const cuDoubleComplex* alpha,
449            const cuDoubleComplex* a,
450            const int* lda,
451            const cuDoubleComplex* b,
452            const int* ldb,
453            const cuDoubleComplex* beta,
454            cuDoubleComplex* c,
455            const int* ldc);
456
457void ssymm(const char* side,
458           const char* uplo,
459           const int* m,
460           const int* n,
461           const float* alpha,
462           const float* a,
463           const int* lda,
464           const float* b,
465           const int* ldb,
466           const float* beta,
467           float* c,
468           const int* ldc);
469
470void dsymm(const char* side,
471           const char* uplo,
472           const int* m,
473           const int* n,
474           const double* alpha,
475           const double* a,
476           const int* lda,
477           const double* b,
478           const int* ldb,
479           const double* beta,
480           double* c,
481           const int* ldc);
482
483void csymm(const char* side,
484           const char* uplo,
485           const int* m,
486           const int* n,
487           const cuComplex* alpha,
488           const cuComplex* a,
489           const int* lda,
490           const cuComplex* b,
491           const int* ldb,
492           const cuComplex* beta,
493           cuComplex* c,
494           const int* ldc);
495
496void zsymm(const char* side,
497           const char* uplo,
498           const int* m,
499           const int* n,
500           const cuDoubleComplex* alpha,
501           const cuDoubleComplex* a,
502           const int* lda,
503           const cuDoubleComplex* b,
504           const int* ldb,
505           const cuDoubleComplex* beta,
506           cuDoubleComplex* c,
507           const int* ldc);
508
509/* HEMM */
510void chemm_(const char* side,
511            const char* uplo,
512            const int* m,
513            const int* n,
514            const cuComplex* alpha,
515            const cuComplex* a,
516            const int* lda,
517            const cuComplex* b,
518            const int* ldb,
519            const cuComplex* beta,
520            cuComplex* c,
521            const int* ldc);
522
523void zhemm_(const char* side,
524            const char* uplo,
525            const int* m,
526            const int* n,
527            const cuDoubleComplex* alpha,
528            const cuDoubleComplex* a,
529            const int* lda,
530            const cuDoubleComplex* b,
531            const int* ldb,
532            const cuDoubleComplex* beta,
533            cuDoubleComplex* c,
534            const int* ldc);
535
536/* HEMM with no underscore*/
537void chemm(const char* side,
538           const char* uplo,
539           const int* m,
540           const int* n,
541           const cuComplex* alpha,
542           const cuComplex* a,
543           const int* lda,
544           const cuComplex* b,
545           const int* ldb,
546           const cuComplex* beta,
547           cuComplex* c,
548           const int* ldc);
549
550void zhemm(const char* side,
551           const char* uplo,
552           const int* m,
553           const int* n,
554           const cuDoubleComplex* alpha,
555           const cuDoubleComplex* a,
556           const int* lda,
557           const cuDoubleComplex* b,
558           const int* ldb,
559           const cuDoubleComplex* beta,
560           cuDoubleComplex* c,
561           const int* ldc);
562
563/* SYR2K */
564void ssyr2k_(const char* uplo,
565             const char* trans,
566             const int* n,
567             const int* k,
568             const float* alpha,
569             const float* a,
570             const int* lda,
571             const float* b,
572             const int* ldb,
573             const float* beta,
574             float* c,
575             const int* ldc);
576
577void dsyr2k_(const char* uplo,
578             const char* trans,
579             const int* n,
580             const int* k,
581             const double* alpha,
582             const double* a,
583             const int* lda,
584             const double* b,
585             const int* ldb,
586             const double* beta,
587             double* c,
588             const int* ldc);
589
590void csyr2k_(const char* uplo,
591             const char* trans,
592             const int* n,
593             const int* k,
594             const cuComplex* alpha,
595             const cuComplex* a,
596             const int* lda,
597             const cuComplex* b,
598             const int* ldb,
599             const cuComplex* beta,
600             cuComplex* c,
601             const int* ldc);
602
603void zsyr2k_(const char* uplo,
604             const char* trans,
605             const int* n,
606             const int* k,
607             const cuDoubleComplex* alpha,
608             const cuDoubleComplex* a,
609             const int* lda,
610             const cuDoubleComplex* b,
611             const int* ldb,
612             const cuDoubleComplex* beta,
613             cuDoubleComplex* c,
614             const int* ldc);
615
616/* SYR2K no_underscore*/
617void ssyr2k(const char* uplo,
618            const char* trans,
619            const int* n,
620            const int* k,
621            const float* alpha,
622            const float* a,
623            const int* lda,
624            const float* b,
625            const int* ldb,
626            const float* beta,
627            float* c,
628            const int* ldc);
629
630void dsyr2k(const char* uplo,
631            const char* trans,
632            const int* n,
633            const int* k,
634            const double* alpha,
635            const double* a,
636            const int* lda,
637            const double* b,
638            const int* ldb,
639            const double* beta,
640            double* c,
641            const int* ldc);
642
643void csyr2k(const char* uplo,
644            const char* trans,
645            const int* n,
646            const int* k,
647            const cuComplex* alpha,
648            const cuComplex* a,
649            const int* lda,
650            const cuComplex* b,
651            const int* ldb,
652            const cuComplex* beta,
653            cuComplex* c,
654            const int* ldc);
655
656void zsyr2k(const char* uplo,
657            const char* trans,
658            const int* n,
659            const int* k,
660            const cuDoubleComplex* alpha,
661            const cuDoubleComplex* a,
662            const int* lda,
663            const cuDoubleComplex* b,
664            const int* ldb,
665            const cuDoubleComplex* beta,
666            cuDoubleComplex* c,
667            const int* ldc);
668
669/* HERK */
670void cher2k_(const char* uplo,
671             const char* trans,
672             const int* n,
673             const int* k,
674             const cuComplex* alpha,
675             const cuComplex* a,
676             const int* lda,
677             const cuComplex* b,
678             const int* ldb,
679             const float* beta,
680             cuComplex* c,
681             const int* ldc);
682
683void zher2k_(const char* uplo,
684             const char* trans,
685             const int* n,
686             const int* k,
687             const cuDoubleComplex* alpha,
688             const cuDoubleComplex* a,
689             const int* lda,
690             const cuDoubleComplex* b,
691             const int* ldb,
692             const double* beta,
693             cuDoubleComplex* c,
694             const int* ldc);
695
696/* HER2K with no underscore */
697void cher2k(const char* uplo,
698            const char* trans,
699            const int* n,
700            const int* k,
701            const cuComplex* alpha,
702            const cuComplex* a,
703            const int* lda,
704            const cuComplex* b,
705            const int* ldb,
706            const float* beta,
707            cuComplex* c,
708            const int* ldc);
709
710void zher2k(const char* uplo,
711            const char* trans,
712            const int* n,
713            const int* k,
714            const cuDoubleComplex* alpha,
715            const cuDoubleComplex* a,
716            const int* lda,
717            const cuDoubleComplex* b,
718            const int* ldb,
719            const double* beta,
720            cuDoubleComplex* c,
721            const int* ldc);
722
723/* TRMM */
724void strmm_(const char* side,
725            const char* uplo,
726            const char* transa,
727            const char* diag,
728            const int* m,
729            const int* n,
730            const float* alpha,
731            const float* a,
732            const int* lda,
733            float* b,
734            const int* ldb);
735
736void dtrmm_(const char* side,
737            const char* uplo,
738            const char* transa,
739            const char* diag,
740            const int* m,
741            const int* n,
742            const double* alpha,
743            const double* a,
744            const int* lda,
745            double* b,
746            const int* ldb);
747
748void ctrmm_(const char* side,
749            const char* uplo,
750            const char* transa,
751            const char* diag,
752            const int* m,
753            const int* n,
754            const cuComplex* alpha,
755            const cuComplex* a,
756            const int* lda,
757            cuComplex* b,
758            const int* ldb);
759
760void ztrmm_(const char* side,
761            const char* uplo,
762            const char* transa,
763            const char* diag,
764            const int* m,
765            const int* n,
766            const cuDoubleComplex* alpha,
767            const cuDoubleComplex* a,
768            const int* lda,
769            cuDoubleComplex* b,
770            const int* ldb);
771
772void strmm(const char* side,
773           const char* uplo,
774           const char* transa,
775           const char* diag,
776           const int* m,
777           const int* n,
778           const float* alpha,
779           const float* a,
780           const int* lda,
781           float* b,
782           const int* ldb);
783
784void dtrmm(const char* side,
785           const char* uplo,
786           const char* transa,
787           const char* diag,
788           const int* m,
789           const int* n,
790           const double* alpha,
791           const double* a,
792           const int* lda,
793           double* b,
794           const int* ldb);
795
796void ctrmm(const char* side,
797           const char* uplo,
798           const char* transa,
799           const char* diag,
800           const int* m,
801           const int* n,
802           const cuComplex* alpha,
803           const cuComplex* a,
804           const int* lda,
805           cuComplex* b,
806           const int* ldb);
807
808void ztrmm(const char* side,
809           const char* uplo,
810           const char* transa,
811           const char* diag,
812           const int* m,
813           const int* n,
814           const cuDoubleComplex* alpha,
815           const cuDoubleComplex* a,
816           const int* lda,
817           cuDoubleComplex* b,
818           const int* ldb);
819
820#if defined(__cplusplus)
821}
822#endif /* __cplusplus */
823
824#endif /* !defined(NVBLAS_H_) */
825 
codekingpro/portable-devtools · Team Ai