当前位置:网站首页>9.cuBLAS开发指南中文版--cuBLAS中的原子模式的配置
9.cuBLAS开发指南中文版--cuBLAS中的原子模式的配置
2022-08-08 16:01:00 【扫地的小何尚】
cuBLAS中的原子模式的配置
2.4.20. cublasSetAtomicsMode()
cublasStatus_t cublasSetAtomicsMode(cublasHandlet handle, cublasAtomicsMode_t mode)
一些方法,如 cublas<t>symv
和 cublas<t>hemv
具有使用原子来累积结果的替代实现。 这种实现通常要快得多,但可以生成从一次运行到另一次运行的结果并不完全相同。 从数学上讲,这些不同的结果并不显着,但在调试这些差异时可能会产生偏见。
此函数允许或禁止在 cuBLAS 库中对所有具有替代实现的例程使用原子。 如果没有在任何 cuBLAS 例程的文档中明确指定,则意味着该例程没有使用原子的替代实现。 当原子模式被禁用时,当在同一硬件上使用相同的参数调用时,每个 cuBLAS 例程应该从一次运行到另一次运行产生相同的结果。
默认初始化的 cublasHandle_t
对象的默认原子模式是 CUBLAS_ATOMICS_NOT_ALLOWED
。 有关详细信息,请参阅有关类型的部分。
Return Value | Meaning |
---|---|
CUBLAS_STATUS_SUCCESS | 原子模式设置成功 |
CUBLAS_STATUS_NOT_INITIALIZED | 库未初始化 |
2.4.21. cublasGetAtomicsMode()
cublasStatus_t cublasGetAtomicsMode(cublasHandle_t handle, cublasAtomicsMode_t *mode)
此函数查询特定 cuBLAS 上下文的原子模式。
默认初始化的 cublasHandle_t
对象的默认原子模式是 CUBLAS_ATOMICS_NOT_ALLOWED。
有关详细信息,请参阅有关类型的部分。
Return Value | Meaning |
---|---|
CUBLAS_STATUS_SUCCESS | 原子模式设置成功 |
CUBLAS_STATUS_NOT_INITIALIZED | 库未初始化 |
CUBLAS_STATUS_INVALID_VALUE | 参数模式是一个 NULL 指针 |
2.4.22. cublasSetMathMode()
cublasStatus_t cublasSetMathMode(cublasHandle_t handle, cublasMath_t mode)
cublasSetMathMode
函数使您能够选择由 cublasMath_t
定义的计算精度模式(请参阅 cublasMath_t)。 允许用户将计算精度模式设置为它们的逻辑组合(不推荐使用的 CUBLAS_TENSOR_OP_MATH
除外)。 例如,cublasSetMathMode(handle, CUBLAS_DEFAULT_MATH | CUBLAS_MATH_DISALLOW_REDUCED_PRECISION_REDUCTION)
。 请注意,默认的数学模式是 CUBLAS_DEFAULT_MATH
。
有关 cublasGemmEx()
和 cublasLtMatmul()
API 及其跨步变体允许的矩阵和计算精度,请参阅:cublasGemmEx()、cublasGemmBatchedEx()、cublasGemmStridedBatchedEx() 和 cublasLtMatmul()。
Return Value | Meaning |
---|---|
CUBLAS_STATUS_SUCCESS | 原子模式设置成功 |
CUBLAS_STATUS_NOT_INITIALIZED | 库未初始化 |
CUBLAS_STATUS_INVALID_VALUE | 指定了无效的模式值。 |
2.4.23. cublasGetMathMode()
cublasStatus_t cublasGetMathMode(cublasHandle_t handle, cublasMath_t *mode)
此函数返回库例程使用的数学模式。
Return Value | Meaning |
---|---|
CUBLAS_STATUS_SUCCESS | 数学类型成功返回。 |
CUBLAS_STATUS_NOT_INITIALIZED | 库未初始化 |
CUBLAS_STATUS_INVALID_VALUE | 模式为 NULL。 |
2.4.24. cublasSetSmCountTarget()
cublasStatus_t cublasSetSmCountTarget(cublasHandle_t handle, int smCountTarget)
cublasSetSmCountTarget
函数允许在内核执行期间覆盖库可用的多处理器数量。
当已知 cuBLAS 例程与不同 CUDA 流上的其他工作同时运行时,此选项可用于提高库性能。 例如。 NVIDIA A100 GPU
有 108 个 SM,并且有一个并发 kenrel 运行,网格大小为 8,可以使用值为 100 的 cublasSetSmCountTarget
来覆盖库启发式算法,以优化在 100 个多处理器上运行。
当设置为 0 时,库将返回其默认行为。 输入值不应超过设备的多处理器计数,可使用 cudaDeviceGetAttribute
获取。 不接受负值。
用户在使用此例程修改库句柄时必须确保线程安全,类似于使用 cublasSetStream
时。
Return Value | Meaning |
---|---|
CUBLAS_STATUS_SUCCESS | SM 计数目标已成功设置。 |
CUBLAS_STATUS_NOT_INITIALIZED | 库未初始化 |
CUBLAS_STATUS_INVALID_VALUE | smCountTarget 的值超出允许范围。 |
2.4.25. cublasGetSmCountTarget()
cublasStatus_t cublasGetSmCountTarget(cublasHandle_t handle, int *smCountTarget)
此函数获取先前编程到库句柄的值。
Return Value | Meaning |
---|---|
CUBLAS_STATUS_SUCCESS | SM 计数目标已成功设置。 |
CUBLAS_STATUS_NOT_INITIALIZED | 库未初始化 |
CUBLAS_STATUS_INVALID_VALUE | smCountTarget 的值为NULL。 |
边栏推荐
猜你喜欢
UTF-8 BOM文件导致配置文件无法读取
【Unity入门计划】Unity实例-C#如何通过封装实现对数据成员的保护
抓住时代趋势,网赚新逻辑:平台+个人模式超清晰解读(附产品评测)
Dry goods: design high concurrency architecture from scratch
带你玩转“超大杯”ECS特性及实验踩坑【华为云至简致远】
Flutter的实现原理初探
[Online interviewer] How to achieve deduplication and idempotency
腾讯云产品可观测最佳实践 (Function)
promise学习笔记
GPT3中文自动生成小说「谷歌小发猫写作」
随机推荐
国泰君安证券新手开户、有安全保障吗?
我分析30w条数据后发现,西安新房公摊最低的竟是这里?
论文解读(soft-mask GNN)《Soft-mask: Adaptive Substructure Extractions for Graph Neural Networks》
Dry goods: design high concurrency architecture from scratch
PayPal无差别封号潮,被围剿的站群模式还能玩多久?如何避免shopify封店
【kali-权限提升】(4.2.5)社会工程学工具包:PowerShell攻击向量(防报毒)
手把手教你uniapp接入聊天IM即时通讯功能-源码分享
leetcode/删除链表的倒数第n个结点
Synergistic authors open source throttling, 2022 trend of technology foresight (asynchronous programming/container technology)
找工作的我看了国聘app
鹏城杯部分WP
NFT质押挖矿分红系统开发逻辑功能介绍
文档管理系统:攻克这3个痛点,解决80%企业文档管理难题
目前安全靠谱的国内期货开户流程?
Superset 1.2.0 installation
sql合并连续时间段内,某字段相同的行。
bzoj3262 Flowers bloom on Mo
Kubernetes-基础-常用命令
【对线面试官】如何实现去重和幂等
Take you to play with the "Super Cup" ECS features and experiment on the pit [HUAWEI CLOUD is simple and far]