数据类型#
NVPL BLAS 类型定义在 include/nvpl_blas_types.h
头文件中。
复数数据类型#
C / C++#
为了保证可移植性,NVPL BLAS 定义了自己的单精度和双精度复数数据类型:nvpl_scomplex_t
和 nvpl_dcomplex_t
。这些类型是结构体,包含两个字段(real
和 imag
),分别是对应的浮点数据类型(float
和 double
)。
为了更好地与用户的代码互操作,允许在包含 nvpl_blas_types.h
之前重新定义这些类型,只要它们与上述定义 ABI 兼容即可。
例如
对于使用标准 C99 及更新版本的 C 语言,可以这样做
#include <complex.h> #define nvpl_scomplex_t float complex #define nvpl_dcomplex_t dobule complex #include "nvpl_blas_types.h"
对于 C++
#include <complex> #define nvpl_scomplex_t std::complex<float> #define nvpl_dcomplex_t std::complex<double> #include "nvpl_blas_types.h"
整数数据类型#
另请参阅
C / C++#
NVPL BLAS 定义了以下整数数据类型
nvpl_int32_t
:32 位整数,int32_t
的别名nvpl_int64_t
:64 位整数,int64_t
的别名nvpl_int_t
:如果定义了
NVPL_ILP64
宏,则为nvpl_int64_t
的别名否则,为
nvpl_int32_t
的别名。
大多数 BLAS C 和 Fortran 风格的 API 使用 nvpl_int_t
,这允许 NVPL BLAS 用于 LP64(整数为 32 位)和 ILP64(整数为 64 位)模式,具体取决于是否存在 NVPL_ILP64
宏。
大多数 Service API 接受固定长度的整数参数,例如 nvpl_int32_t
。
请查看参考手册以了解确切的 API 签名。
Fortran#
大多数 BLAS API 接受 INTEGER
类型的整数参数,其长度未指定,并且可以使用编译器标志(例如 GNU Fortran 的 -fdefault-integer-8
)进行控制。
大多数 Service API 接受固定长度的整数参数,例如 INTEGER*4
。
请查看参考手册以了解确切的 API 签名。