BlasOptions#

class nvmath.device.BlasOptions(
size,
precision,
data_type,
*,
code_type=None,
block_size=None,
block_dim=None,
leading_dimension=None,
transpose_mode=('non_transposed', 'non_transposed'),
function='MM',
execution='Block',
)[source]#

一个封装了部分 BLAS 设备功能的类。可以查询部分设备函数,以获取某些旋钮(例如 leading_dimensionblock_dim)的可用或最佳值。在通过 create() 完成最终确定之前,它不包含已编译的、可直接使用的设备函数。

参数:
  • size – 一个整数序列,表示矩阵乘法问题的三个维度 (m, n, k)

  • precision – 计算精度,指定为 numpy 浮点数据类型,目前支持 numpy.float16numpy.float32numpy.float64

  • data_type – 输入矩阵的数据类型,可以是 'real''complex'

  • code_type (CodeType) – 目标 GPU 代码和计算能力。

  • block_size (int) – 总块大小,可选。如果未提供或设置为 'suggested',则将设置为 1D 块维度的建议值。

  • block_dim (Dim3) – 用于启动 CUDA 内核的块维度,可选。如果未提供或设置为 'suggested',则将设置为建议值。当显式指定 block_size 时,不能使用。

  • leading_dimension (LeadingDimension) – 输入矩阵的前导维度,可选。如果未提供,则将设置为匹配矩阵的行/列维度。或者,如果作为 'suggested' 提供,则将设置为获得最佳性能的建议值。

  • transpose_mode (TransposeMode) – 所有输入矩阵的转置模式。 如果未提供,则默认不进行转置。

  • function (str) – 指定函数名称的字符串。目前支持 'MM' (默认) 用于矩阵乘法。

  • execution (str) – 指定执行方法的字符串,可以是 'Block''Thread'

另请参阅

此类的属性提供与 CUDA C++ cuBLASDx API 的 1:1 映射。有关更多详细信息,请参阅 cuBLASDx 文档

方法

__init__(
size,
precision,
data_type,
*,
code_type=None,
block_size=None,
block_dim=None,
leading_dimension=None,
transpose_mode=('non_transposed', 'non_transposed'),
function='MM',
execution='Block',
)[source]#
create(**kwargs)[source]#
valid(*knobs)[source]#

属性

block_dim#
block_size#
code_type#
data_type#
execution#
function#
leading_dimension#
precision#
size#
transpose_mode#