数据类型#

NVPL BLAS 类型定义在 include/nvpl_blas_types.h 头文件中。

复数数据类型#

C / C++#

为了保证可移植性,NVPL BLAS 定义了自己的单精度和双精度复数数据类型:nvpl_scomplex_tnvpl_dcomplex_t。这些类型是结构体,包含两个字段(realimag),分别是对应的浮点数据类型(floatdouble)。

为了更好地与用户的代码互操作,允许在包含 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"
    

整数数据类型#

另请参阅

LP64 和 ILP64 接口

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 签名。