CUDA学习_2

CUDA编程涉及将数据从CPU内存移动到GPU,利用核函数在GPU的多线程结构(thread,block,grid)上执行计算,然后将结果回传至CPU。NVCC是CUDA的编译器,用于替代GCC。线程执行流程包括线程块分配到StreamingMultiprocessors(SM),Warp调度器管理线程执行,每个Warp由32个线程组成,在GPU的核心上并行运行。
摘要由CSDN通过智能技术生成
CUDA程序编写基本步骤
  1. 把输入数据从CPU内存复制到GPU显存
  2. 在执行芯片上缓存数据,加载GPU程序并执行
  3. 把计算结果从GPU显存中复制到CPU内存中
CUDA编程模式

  1.  执行空间
  2. CUDA简单编译

        nvcc 代替gcc

3.  CUDA的线程层次

thread, block, grid

Thread,执行在core上;

block,执行在SM上;

grid,执行在device上; 

        

4. CUDA内的执行流程

>加载核函数

>grid分配到device

>根据<<<..>>>中的参数,把block分配到SM

>根据<<<..>>>中的参数,Warp调度器启用线程thread

>把32个thread分为1组,称作一个Warp

>每个Warp分配到32个core上运行

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Windows 系统中,pytorch_cuda_alloc_conf 是一个用于配置 PyTorch 在 CUDA(Compute Unified Device Architecture)框架上进行 GPU 内存分配的相关工具。PyTorch 是一个在深度学习领域非常流行的开源机器学习框架,它提供了对图形处理器(GPU)的支持,以加速深度学习模型的训练和推理过程。 pytorch_cuda_alloc_conf 可以用于配置 PyTorch 在 CUDA 框架中使用的 GPU 内存分配策略。在深度学习模型训练和推理过程中,GPU 内存是非常宝贵的资源,并且需要合理利用和管理。pytorch_cuda_alloc_conf 工具提供了一些参数和选项,供用户根据自己的需求和硬件环境来优化 GPU 内存的使用。 该工具具体包含以下参数和选项: 1. enable_caching_allocator:可以设置为 true 或 false,用于启用或禁用缓存分配器。缓存分配器可以减少内存碎片,提高内存的利用率,但也会增加内存的占用。 2. cached_benchmark:设置为 true 或 false,用于启用或禁用缓存分配器的基准功能。当启用缓存分配器时,使用基准功能可以更好地选择合适的缓存大小。 3. allocator_type:可以设置为 cuda 或 prefetcher_cuda,用于选择分配器类型。cuda 是默认的分配器,prefetcher_cuda 是一种实验性的分配器,用于进一步加速内存分配和访问。 4. cuda_prefetch_async:可以设置为 true 或 false,用于启用或禁用异步预取。异步预取可以在计算和数据传输之间提前将数据加载到 GPU 内存中。 通过调整这些参数,用户可以根据自己的实际情况来优化 GPU 内存的分配和使用,从而提高模型的训练和推理效率。但需要注意的是,在调整参数之前,我们应该先了解自己的硬件环境和模型需求,以及对内存的预期使用情况,以便找到最合适的配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值