【发布时间】:2019-11-19 22:54:09
【问题描述】:
我正在运行nvidia's sample code。代码可在github 上找到: 我从CUDA toolkit documentation 知道代码
允许库尽可能使用 Tensor Core 操作
通过使用CUBLAS_TENSOR_OP_MATH。
在文档中我发现 CUBLAS_DEFAULT_MATH 阻止库使用 Tensor Core 操作,但是示例代码没有使用它。
WMMA 的默认设置是什么?它会在 CUDA 核心上执行,还是有 Tensor 核心可能支持计算的可能性。
【问题讨论】:
-
docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#wmma -- 我真的不明白你在问什么/为什么问
-
我在问矩阵乘法是否会默认使用 CUDA 或 TENSOR 核心来完成。
-
换句话说:如果我既不使用 CUBLAS_DEFAULT_MATH 也不使用 CUBLAS_TENSOR_OP_MATH 会怎样。是否会使用 Tensor 核心?
-
wmma 命名空间用于与 tensorcore 交互,因此
wmma_example在所有情况下都将使用 tensorCore 完成。对于cublasGemmEx,默认使用CUBLAS_DEFAULT_MATH,所以如果不设置CUBLAS_TENSOR_OP_MATH,它不会尝试使用tensorcore。 -
你不能使用 wmma 指令/内在函数,除非你为支持张量核心的 GPU 架构进行编译(你会得到一个编译错误)。您不能使用任何设置禁用或修改此行为。您不能使用 wmma 指令/内在函数在 CUDA 内核上执行任何操作。他们只在张量核上工作。 CUBLAS_ 设置影响 CUBLAS 调用,而不是 wmma 指令/内在函数的使用。