【面经笔记】cuda、gpu概念

本文介绍了CUDA编程中的核心概念,包括thread、block、grid、warp和SP、SM。讨论了GPU并行计算的调度单位和性能优化策略,如线程束同步、内存管理和纹理缓存。对比了GPU与CPU在指令执行和内存访问延迟上的差异,并提出了提升GPU计算效率的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 与CUDA相关的几个概念:thread,block,grid,warp,sp,sm。
    sp: 小核(流处理器)最基本的处理单元,streaming processor 最后具体的指令和任务都是在sp上处理的。GPU进行并行计算,也就是很多个sp同时做处理
    sm: 大核(流多处理器)多个sp加上其他的一些资源组成一个sm, streaming multiprocessor. 其他资源也就是存储资源,共享内存,寄储器等。
    Warp:(线程束)GPU执行程序时的调度单位,一起执行。目前cuda的warp的大小为32,同在一个warp的线程,以不同数据资源执行相同的指令。
    grid、block、thread:在利用cuda进行编程时,一个grid分为多个block,而一个block分为多个thread.其中任务划分到是否影响最后的执行效果。划分的依据是任务特性和。
  2. 利用图形API 和CUDA进行GPU通用计算的性能区别?
    利用图形API需要把问题转化为图形学的变化;而CUDA是C语言的扩展,比较适合做通用计算
  3. GPU的指令和CPU指令的最大区别?
    CPU需要运行OS,不但要处理中断,还要负责存储器空间分配与回收,CPU指令有很多都是操作特权寄存器;GPU目前还做不到这一点
  4. 你怎么样知道是否达到了GPU的理论加速倍数?怎么计算?
    通过成千上万线程来隐藏访问延迟
  5. GPU架构的缺点?如果让你设计,你会怎么改进?
    a.精度问题,b.编程模式不太灵活
  6. GPU有通过成千上万线程来隐藏访问延迟,CPU也有隐藏访问延迟的优化,最大的区别是什么?
    CPU的线程切换开销是昂贵的,一般都是需要1000cycle而gpu的线程切换只有1个cycle
  7. 请你列举出一些常用的优化方法
    (线程束->线程块)对于block和thread的分配问题,有这么一个技巧,每个block里面的thread个数最好是32的倍数,因为,这样可以让线程束一起执行,计算效率更高,促进memory coalescing
    ( 线程块 )一个sm只会执行一个block里的warp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值