FunnyWii's Zone 时日曷丧,与汝偕亡

Ubuntu显卡驱动以及CUDA、cuDNN、TensorRT的安装

安装显卡驱动 首先更新设备信息,不然可能会识别不出来 sudo update-pciids 更新后,将会显示你的显卡型号。信息的末尾的 rev a1,表示独显运行。 lspci | grep -i nvidia funnywii@4060Ti:~$ lspci | grep -i nvidia

FunnyWii Published on 2024-07-26

我还在学CUDA编程(四)——内存管理及访问模式

内存管理 内存分配和释放 CUDA编程模型存在HOST和DEVICE两个异构系统,每个异构系统都有独立的内存空间。 在HOST上,可以使用下面语句分配全局内存: cudaError_t cudaMalloc(void ** devPtr,size_t count) 要注意的是第一个参数,是指针的指针

FunnyWii Published on 2024-08-07

我还在学CUDA编程(四)——内存的层次结构

CUDA 内存模型 存储器的类型有两种: 可编程:显式控制哪些数据存放 不可编程:不能决定数据存储位置 在CPU层次结构中,一级缓存(L1 Cache)和二级缓存(L2 Cache)都是不可编程的。可编程的存储器类型包括: 寄存器 共享内存 本地内存 常量内存 纹理内存 全局内存 下图为上面提到的存

FunnyWii Published on 2024-07-15

继续学CUDA编程(三) —— CUDA执行模型(下)

并行归约问题 先解释一下什么是归约(Reduction),归约是将某个计算问题变换为另一个问题的过程。在CUDA运算中,在向量中执行满足交换律和结合律的运算,被称为归约问题。每次迭代计算方式都是相同的(归),从一组多个数据最后得到一个数(约)^[1]^。比如当给定N个数值,求其SUM/MAX/MIN

FunnyWii Published on 2024-06-27

继续学CUDA编程(三)——CUDA执行模型(上)

这一部分是CUDA的核心部分,涉及到了硬件和程序的执行模型。 SM 流式多处理器(Stream Multi-processor,SM)是构建整个GPU的核心模块。GPU的硬件并行,是通过复制了多个SM来实现的。一个Block只能在一个SM上被调度。 下图包含了SM的关键组件 CUDA核心 (Core

FunnyWii Published on 2024-04-26

“我还要学CUDA编程!”(二)——CUDA编程模型

CUDA编程结构 在GPU上执行的函数称为CUDA核函数(Kernel Function),核函数会被GPU上多个线程执行。典型的CUDA程序遵循如下模式: 把数据从CPU内存(HOST)拷贝至GPU内存(DEVICE) 调用该Kernel函数,对DEVICE中的数据进行操作 将数据从DEVICE传

FunnyWii Published on 2024-04-21

”我要学CUDA编程!“ —— 来自一个废物的自白

写在前面(废话,请跳过) 本来自己的脑子里是不存在CUDA编程这个东西的,没错,就是压根儿没听说过。 之所以了解到这个东西,是因为最近开始做AVM (Around View Monitor),或者说SVS (Surrounding View System),利用4个广角相机,实现车辆周围的360°环

FunnyWii Published on 2024-04-13

Jetson - ARM架构下的 torch 和 torchvision 的安装 (支持CUDA)

写在前面 ARM架构下的 torch 安装比较烦人,不是麻烦,而是烦人。 网络上大部分教程虽然写着“Jetson的torch安装”,不过基本都是用官方stable的whl安装,这些安装本身没有什么问题,但是官方ARM架构的torch并不支持 CUDA,torchvision 亦如是。 这个方法也并不

FunnyWii Published on 2023-06-25