自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 【分享NVIDIA GTC技术干货】Developing Robust Multi-Task Models for AV Perception [SE50006]

主讲人提出了一种基于伪标签的半监督学习策略,用于提高自动驾驶领域中的多任务学习模型性能。使用伪标签可以有效地解决数据不平衡和领域差异等问题,提高模型的泛化能力。通过在线和离线伪标签的混合使用,可以获得更高质量的伪标签,从而进一步提高模型性能。离线伪标签的方式在实验中表现出更好的性能,并且伪标签生成质量可以通过深度引导来进一步提高[mIoU from 68.15 to 68.64]。混合使用在线和离线伪标签的策略比纯使用在线或离线伪标签的策略在实验中表现更好[mIoU from 74.2% to 78%]。

2023-03-23 08:00:00 305

原创 多系统启动盘

1. Ventoy。

2023-03-14 22:17:36 96

原创 CUDA编程 7 总结【参加CUDA线上训练营】

总之,cuda是一个非常强大的并行计算框架,可以加速很多种类型的应用程序,特别是对于数据密集型计算,cuda可以帮助你提高程序的效率,提高生产力。在CUDA中,程序员将设备代码划分为多个小任务,称为线程,并将这些线程组成多个线程块,以便进行并行处理。在cuda编程中,你可以使用CUDA内置的原子操作函数,例如atomicAdd(),atomicMin()等,以执行各种不同的原子操作。原子操作可以是简单的加法,减法,比较,以及位运算,它们可以保证线程安全,避免了数据不一致的情况。

2023-02-14 02:46:35 238

原创 CUDA编程 5 执行流 和 运行库【参加CUDA线上训练营】

CUDA流是由多个线程组成的,线程以块的形式运行在一个计算单元上,每个线程执行一个Kernel。它提供了一个简单易用的接口,使用者可以方便地调用cuBLAS库中的函数,而不需要关注底层的实现细节。此外,cuBLAS还支持多GPU环境,可以在多个GPU之间进行分布式计算,从而加速大规模的计算任务。使用CUDA流编写代码需要遵循一些原则,包括对线程块的组织,对共享存储器的管理,以及对错误的处理。总的来说,cuBLAS是一个高效实用的CUDA平台上的线性代数库,是加速科学计算和工程应用的重要工具。

2023-02-14 02:14:29 254

原创 CUDA编程 6 原子操作【参加CUDA线上训练营】

atomicCAS:对全局内存的指定位置执行比较并交换操作,并返回该位置的旧值。atomicMax:对全局内存的指定位置执行取最大值操作,并返回该位置的旧值。atomicExch:对全局内存的指定位置执行交换操作,并返回该位置的旧值。atomicXor:对全局内存的指定位置执行位异或操作,并返回该位置的旧值。atomicAnd:对全局内存的指定位置执行位与操作,并返回该位置的旧值。atomicOr:对全局内存的指定位置执行位或操作,并返回该位置的旧值。使用原子操作可以提高应用程序的并行性和效率。

2023-02-14 01:50:35 515

原创 CUDA编程 4 错误检测,事件及存储单元 【参加CUDA线上训练营】

流中的任意点都可以通过API插入事件以及查询事件完成的函数,只有事件所在流中其之前的操作都完成后才能触发事件完成。在Cuda编程中,通常会使用尽量小的存储单元,提高程序的性能。利用共享存储单元加速矩阵乘法的思路是,将一个矩阵分块,并将每一块的部分数据加载到共享存储单元中,以便在单个 CUDA 核心中重复访问多次。Cuda编程模型中的事件。加载数据到共享存储单元中:每个 CUDA 核心加载其对应的小矩阵中的数据到共享存储单元中。通过使用共享存储单元,可以减少对全局存储单元的访问,从而提高矩阵乘法的性能。

2023-02-14 01:20:35 656

原创 CUDA编程 3 矩阵乘法【参加CUDA线上训练营】

通过blockIdx, blockDim 和 threadIdx获得结果矩阵的行和列坐标。sum += 左矩阵[row * n + i] * 右矩阵[i * k + col];更换 GPU:如果使用的是低端 GPU,考虑更换更高级的 GPU,以增加可用的线程数。分块处理:将要处理的数据分成多个块,分别使用 CUDA 函数进行处理,并将结果合并。重构代码:考虑将数据处理流程重构为更高效的方式,以降低数据量。结果矩阵[row * k + col] = sum;每个核函数计算结果矩阵一个坐标上的值。

2023-02-14 00:48:11 174

原创 CUDA编程 2 线程组织【参加CUDA线上训练营】

增加线程数限制:如果 GPU 支持,可以通过修改驱动程序或系统设置来增加线程数限制,从而获得更多的线程。使用多个 GPU:如果有多个 GPU 可供使用,可以使用多个 GPU 并行处理数据,以提高处理速度。在 GPU 上可用的线程数是有限的,如果线程数过大,超出限制后会导致引发运行时错误。分块处理:将要处理的数据分成多个块,分别使用 CUDA 函数进行处理,并将结果合并。获取 GPU 可用的线程数,并在根据该信息设置线程数时保证不超过该限制。函数来检查在 GPU 上的某个块大小下的可用线程数。

2023-02-14 00:32:09 176

原创 CUDA编程 1 初识CUDA【参加CUDA线上训练营】

编译简单的cuda文件可以使用1.2的方法直接编译。对于复杂的工程文件可以编写Makefile文件进行编译,但编译规则需要设为nvcc。2. 利用Makefile规则,尝试加入链接库,比如:加入cuBLAS库编译cuda程序。1. 利用Makefile规则,尝试编写批量编译工具,比如:同时编译5个cuda程序。Cuda 程序编写的关键在于核函数 (kernel) 的编写和调用。关键在于核函数的标识符和其调用时需要加上的形式。可以使用nvcc对cuda编程的代码进行编译。

2023-02-13 23:58:26 204

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除