Oracle® Developer Studio 12.5:性能库用户指南

退出打印视图

更新时间: 2016 年 6 月
 
 

稀疏 BLAS

Oracle Developer Studio 性能库稀疏 BLAS 软件包基于以下两个软件包:

  • Netlib Sparse BLAS 软件包,由 Dodson, Grimes 和 Lewis 开发,其中包括了基础线性代数子程序的稀疏扩展,用于对稀疏向量进行运算。

  • NIST(美国国家标准与技术研究院,NIST)Fortran Sparse BLAS 库,其中包括的例程用于执行矩阵乘积,并对各种存储格式的稀疏矩阵的三角方程组进行求解。

有关其他稀疏 BLAS 信息,请参阅以下资源。

Netlib Sparse BLAS 和 NIST Fortran Sparse BLAS 库例程都使用自己的命名约定,如以下部分中的介绍。

Netlib Sparse BLAS

每个 Netlib Sparse BLAS 例程的名称都为“前缀-根-后缀”格式:

  • 前缀表示数据类型。

  • 根表示运算。

  • 后缀表示例程是否是现有密集 BLAS 例程的直接扩展。

下表列出了 Netlib Sparse BLAS 向量例程的命名约定。

表 2  Netlib Sparse BLAS 命名约定
运算
名称的根
前缀和后缀
点积
-DOT-
S-I D-I C-UI Z-UI C-CI Z-CI
标量乘以一个向量,然后加上另一个向量
-AXPY-
S-I D-I C-I Z-I
应用吉文斯旋转
-ROT-
S-I D-I
将 x 集合到 y
-GTHR-
S- D- C- Z- S-Z D-Z C-Z Z-Z
将 x 分散到 y
-SCTR-
S- D- C- Z-

前缀可以是以下数据类型之一:

  • SSINGLE

  • DDOUBLE

  • CCOMPLEX

  • ZCOMPLEX*16DOUBLE COMPLEX

ICIUI 后缀表示稀疏 BLAS 例程是密集 BLAS 例程的直接扩展。

NIST Fortran Sparse BLAS

每个 NIST Fortran Sparse BLAS 例程的名称都包含 6 个字符,格式为 XYYYZZ,其中:

  • X 表示数据类型。

  • YYY 表示稀疏存储格式。

  • ZZ 表示运算。

下表显示了 XYYYZZ 的可能值。

表 3  NIST Fortran Sparse BLAS 例程命名约定
例程名称中的变量
可接受的值和含义
X – 使用一个字符指定数据类型
  • S:单精度

  • D:双精度

  • C:复数

  • Z:双精度复数

YYY – 使用三个字符指定稀疏存储格式
单一条目格式:
  • CSC:压缩稀疏列

  • COO:坐标

  • CSR:压缩稀疏行

  • DIA:对角线

  • ELL:ellpack

  • JAD:锯齿对角线

  • SKY:天际线

块条目格式:
  • BCO:块坐标

  • BSC:块压缩稀疏列

  • BSR:块压缩稀疏行

  • BDI:块对角线

  • BEL:块 ellpack

  • VBR:块压缩稀疏行

ZZ – 使用两个字符指定运算
  • MM:矩阵-矩阵积

  • SM:三角方程组的解(除 COO 以外的所有格式都支持)

  • RP:右排列(仅用于 JAD 格式)