CUDA
文章平均质量分 78
mingo_敏
这个作者很懒,什么都没留下…
展开
-
CUDA从入门到放弃(十一):延迟加载 Lazy Loading
延迟加载是一种技术,它将CUDA模块和内核的加载从程序初始化阶段推迟到实际内核执行之前。在程序运行过程中,如果并非所有包含的内核都被使用,那么一些内核就会被避免不必要的加载,这在包含多个库时尤为常见。大多数情况下,程序仅会使用库中的少数几个内核。通过延迟加载,程序可以仅加载实际需要的内核,从而节省初始化时间,并减少GPU和主机内存的开销。要启用延迟加载,可以将CUDA_MODULE_LOADING环境变量设置为LAZY。原创 2024-03-29 08:32:20 · 1752 阅读 · 0 评论 -
CUDA从入门到放弃(十四):CUDA Thrust库
CUDA从入门到放弃(十四):CUDA Thrust库Thrust 是一个基于标准模板库(STL)的 C++ 模板库,专为 CUDA 设计,旨在简化高性能并行应用的开发。它提供了一系列数据并行原语,如扫描、排序和归约,可组合实现复杂算法。通过高级抽象描述计算,Thrust 能自动选择最优实现,适用于 CUDA 应用的快速原型设计和生产环境,提高程序员生产率和性能。原创 2024-03-29 08:30:48 · 2865 阅读 · 0 评论 -
CUDA从入门到放弃(十三):C++语言扩展 C++ Language Extensions
CUDA从入门到放弃(十三):C++语言扩展 C++ Language Extensions。原创 2024-03-28 08:35:16 · 1170 阅读 · 0 评论 -
CUDA从入门到放弃(八):事件( Events)
CUDA从入门到放弃(八):事件( Events)CUDA 提供了强大的功能,不仅可以监控设备的进度,还能实现精确的计时。这些功能是通过异步记录程序中的事件并查询其完成状态来实现的。每个事件都严格遵循完成机制,确保在所有前置任务或特定流中的命令全部执行完毕后,才被视为已完成。而在流 0 中的事件,更是需要等待所有流中的任务都圆满完成后,才会标记为完成。原创 2024-03-27 08:49:53 · 447 阅读 · 0 评论 -
CUDA从入门到放弃(七):流( Streams)
CUDA从入门到放弃(七):流( Streams)应用程序通过流来管理并发操作,流是一系列按顺序执行的命令。不同的流可能无序或并发地执行命令,但此行为并不保证。流上的命令在依赖关系满足时执行,这些依赖可能来自同一流或其他流。同步调用(synchronize call)可以确保所有启动的命令已完成。任何 CUDA 操作都存在于某个 CUDA 流中,要么是默认流(default stream),也称为空流(null stream),要么是明确指定的非空流。原创 2024-03-27 08:49:18 · 3464 阅读 · 0 评论 -
CUDA从入门到放弃(四):CUDA 编程模式 CUDA Programming Model
CUDA从入门到放弃(四):CUDA 编程模式 CUDA Programming Model。原创 2024-03-26 09:02:39 · 1371 阅读 · 0 评论 -
CUDA从入门到放弃(六):CUDA内存结构(Memory Hierarchy)
CUDA从入门到放弃(六):CUDA内存结构(Memory Hierarchy)CUDA线程在执行过程中可以从多个内存空间访问数据。每个线程都有私有的局部内存。每个线程块具有共享内存,该内存对所有线程块内的线程可见,并且与线程块具有相同的生命周期。线程块集群中的线程块可以相互执行对共享内存的读取、写入和原子操作。所有线程都可以访问相同的全局内存。此外,还有两个所有线程都可以访问的只读内存空间:常量内存空间和纹理内存空间。对于同一应用程序来说,全局内存、常量内存和纹理内存空间在内核启动之间是持久的。原创 2024-03-26 09:01:50 · 1294 阅读 · 0 评论 -
CUDA从入门到放弃(九):CUDA错误处理(Error Handling)
在编写CUDA程序时,错误处理是确保程序正确性和稳定性的关键。CUDA错误主要分为编译阶段和运行阶段两类。编译阶段错误通过编译器检查,而运行阶段错误更为复杂,涉及运行时条件、内存访问和设备资源等。对于运行阶段错误,特别要关注带返回码和不带返回码的函数。带返回码的函数,如CUDA API,应即时检查其返回的错误码。而不带返回码的函数则需要关注其他错误指示方式,如全局状态或日志信息。原创 2024-03-25 11:59:14 · 1698 阅读 · 0 评论 -
CUDA从入门到放弃(五):CUDA线程模型 CUDA Thread Hierarchy
CUDA线程模型精心构建了三个层次:线程(Thread)、线程块(Block)和线程网格(Grid),它们协同工作,共同实现高效的并行计算。原创 2024-03-25 11:18:14 · 1024 阅读 · 0 评论 -
CUDA从入门到放弃(十):统一寻址编程 Unified Memory Programming
Unified Memory Programming 统一内存编程。原创 2024-03-22 16:16:43 · 1475 阅读 · 0 评论 -
CUDA从入门到放弃(十二):CUDA环境变量 CUDA Environment Variables
CUDA Environment Variables CUDA环境变量。原创 2024-03-22 16:13:26 · 875 阅读 · 0 评论 -
win10 64位 环境下安装CUDA 11.8和 cuDNN v8.6.0
win10 64位 环境下安装CUDA 11.8和 cuDNN v8.6.0。原创 2023-04-17 17:30:47 · 18983 阅读 · 4 评论 -
TensorRT之开发环境配置(VS2015+cuda10.0+TensorRT-8.4.0.6+opencv4.5.5)
把 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\extras\visual_studio_integration\MSBuildExtensions 下面文件移动到 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations 目录下。原创 2019-06-24 22:06:02 · 228 阅读 · 1 评论 -
centos: NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver.
重启服务器之后就出现连接不上NVIDIA驱动的情况。查看之前安装 nvidia 驱动的版本号。有可能是 nouveau模块没有禁用。再输入nvidia-smi。原创 2023-02-10 16:04:45 · 1406 阅读 · 0 评论 -
ubuntu: NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver.
重启服务器之后就出现连接不上NVIDIA驱动的情况。NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.解决方法:查看之前安装 nvidia 驱动的版本号ls /usr/src | grep nvidia输出sudo apt install dkmssudo原创 2022-02-17 10:22:36 · 548 阅读 · 0 评论 -
CUDA从入门到放弃(二):CUDA编程环境配置
1 CUDA 9.0 安装win7 64位+CUDA 9.0+cuDNN v7.0.5 安装2 编程环境配置3 示例代码:获取GPU设备属性并显示示例代码:获取GPU设备属性并显示#include "cuda_runtime.h"#include "device_launch_parameters.h"#include <stdio.h>#include <io...原创 2019-05-11 23:48:02 · 3915 阅读 · 0 评论 -
CUDA从入门到放弃(三):Hello World 之第一个CUDA程序
vs2015中打开新建一个CUDA程序拿个CUDA中的 hello world 示例程序过来跑一下吧!示例来源于:CUDA Samples计算两个数组间的加法#include "cuda_runtime.h"#include "device_launch_parameters.h"#include <stdio.h>cudaError_t addWithCuda(i...原创 2019-05-12 10:03:48 · 2778 阅读 · 0 评论