CUDA实践指南(三十)

简介:

准备部署:
测试CUDA可用性:
部署CUDA应用程序时,通常需要确保即使目标计算机没有支持CUDA的GPU和/或已安装足够版本的NVIDIA驱动程序,应用程序仍能正常运行。
检测具有CUDA功能的GPU:
当应用程序将被部署到目标机器的任意/未知配置时,应用程序应该明确地测试是否存在CUDAcapable GPU,以便在没有此类设备可用时采取适当的操作。 cudaGetDeviceCount()函数可用于查询可用设备的数量。 与所有CUDA运行时API函数一样,如果没有安装适当版本的NVIDIA驱动程序,此函数将会正常失败并返回cudaErrorNoDevice到应用程序(如果没有支持CUDA的GPU或cudaErrorInsufficientDriver)。 如果cudaGetDeviceCount()报告错误,应用程序应该回退到另一个代码路径。
具有多个GPU的系统可能包含不同硬件版本和功能的GPU。 当使用来自同一应用程序的多个GPU时,建议使用相同类型的GPU,而不是混合硬件世代。 cudaChooseDevice()函数可用于选择最接近所需功能集的设备。
检测硬件和软件配置:
当应用程序依赖于某些硬件或软件功能的可用性来启用某些功能时,可以查询CUDA API以获取有关可用设备配置和已安装软件版本的详细信息。
错误处理:
所有CUDA运行时API调用都会返回类型为cudaError_t的错误代码; 如果没有发生错误,返回值将等于cudaSuccess。 (例外的是内核启动,它返回void和cudaGetErrorString(),它返回一个描述传入它的cudaError_t代码的字符串。)CUDA工具包库(cuBLAS,cuFFT等)同样返回它们自己的 错误代码集。
由于某些CUDA API调用和所有内核启动对于主机代码都是异步的,所以错误可能会异步报告给主机; 通常会在主机和设备下次进行同步时发生,例如在调用cudaMemcpy()或cudaDeviceSynchronize()期间。
始终检查所有CUDA API函数的错误返回值,即使对于预计不会失败的函数也是如此,因为这将允许应用程序在错误发生时尽快检测并从错误中恢复。 不检查CUDA API错误的应用程序有时可能会完成,而没有注意到GPU计算的数据不完整,无效或未初始化。
CUDA工具包示例提供了多个帮助函数,用于使用各种CUDA API进行错误检查; 这些辅助函数位于CUDA工具包的samples / common / inc / helper_cuda.h文件中。
建立最大的兼容性:
每代具有CUDA功能的设备都有相关的计算能力版本,用于指示设备支持的功能集(请参阅CUDA计算功能)。 一个或多个计算能力版本可以在构建文件时为nvcc编译器指定; 编译用于应用程序的目标GPU的本地计算能力对于确保应用程序内核实现最佳性能并且能够使用在给定代GPU上可用的功能是重要的。

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
目录
相关文章
|
机器学习/深度学习 算法 固态存储
最强DETR+YOLO | 三阶段的端到端目标检测器的DEYOv2正式来啦,性能炸裂!!!
最强DETR+YOLO | 三阶段的端到端目标检测器的DEYOv2正式来啦,性能炸裂!!!
437 0
|
Web App开发 移动开发 前端开发
Chrome各个版本小常识
Chrome各个版本小常识
|
5月前
|
消息中间件 存储 Kafka
10倍降本、10倍无损弹性!Kafka Serverless 基础版与专业版重磅发布!
云消息队列 Kafka 版基于 Apache Kafka 构建,提供高吞吐量与高可扩展性的分布式消息队列服务,广泛应用于日志收集、监控数据聚合、流式数据处理及在离线分析等场景,是 AI 与大数据时代企业数据处理体系的核心组件。
vscode ctrl+/ 注释快捷键失效
首次安装vscode 不知道为何会快捷键失效,首先想到的就是键位冲突! 于是解决了。
5799 0
vscode ctrl+/ 注释快捷键失效
|
搜索推荐 数据挖掘 数据管理
短链接系统精选:打造高效网络分享体验
在互联网时代,短链接系统扮演着重要角色,将长网址转化为简洁、易记的字符串。本文介绍了四款知名服务:行业标准的Bitly,提供详细统计和定制功能;简洁的TinyURL,操作简便;品牌化的Rebrandly,支持自定义域名以增强营销效果;以及DZ_tech/ShortURL,提供轻量级的私有部署方案。选择合适的短链接服务能优化用户体验,助力数据分析和营销。
|
机器学习/深度学习
斯坦福大学博士在GitHub发布的漫画机器学习小抄,竟斩获129k标星
斯坦福大学数据科学博士Chris Albon在GitHub上发布了一份超火的机器学习漫画小抄,发布仅仅一天就斩获GitHub榜首标星暴涨120k,小编有幸获得了一份并把它翻译成中文版本,今天给大家分享出来!
|
设计模式 算法 数据库
现代软件开发中的设计模式与效率优化
在当今快节奏的软件开发环境中,设计模式不仅仅是代码组织的工具,更是提升开发效率和代码质量的重要利器。本文探讨了几种常用的设计模式在实际项目中的应用与优化策略,旨在帮助开发者在面对复杂系统和变化需求时,能够更加高效地进行软件开发。
148 1
聊天框(番外篇)—如何实现@功能的整体删除
上一篇文章中,我们已经初步实现了聊天输入框,但其@功能是不完善的,例如无法整体删除、无法获取除用户名以外的数据(假设用户名不是唯一的)。有问题就要想办法解决,在网上百度了一圈后,倒是有一些收获。本文就着重解决@的整体删除以及获取额外数据。
1343 0
聊天框(番外篇)—如何实现@功能的整体删除
|
移动开发 测试技术 Python
02 埋点测试实战之神策数据
02 埋点测试实战之神策数据
设置VSCode终端命令行清除快捷键Ctrl+K或Ctrl+L
设置VSCode终端命令行清除快捷键Ctrl+K或Ctrl+L