我的研发面经_显卡的硬件结构

1.GPU硬件相关:

使用卡的型号:

总结一下英伟达显卡的型号,N卡自发展至今经历了这几个架构:

第一代G80:tesla架构

第二代:费米架构

第三代:开普勒架构

第四代:麦克斯韦架构

第五代:帕斯卡架构

其中我们所用到的设是1050ti、1080ti、和TITAN X。

其中1050ti的结构是6核(sm),每个sm中有128个计算单元(sp),共768个sp。

其中1080ti的结构是6个GPC,按照原GP102-350核心模板,应该是每个核5个SM,共30个SM,但对于1080ti消减了2个sm,共28个sm,每个sm中有128个计算单元(sp),共28*128=3584个sp。

TiTan X是30个SM,每个sm128个sp,共3840个sp。

思考:sp为什么不是“核”、"线程“?

答:sp事实上是最基本的逻辑运算单元,它完成的工作使它更像是一个加法器。

sm是逻辑处理的最小硬件结构,其中包含了逻辑控制单元、高速访存、和sp。一个sm,处理完一个block中的所有线程才会处理下一个block中的数据,因此我们进行划分时,最好保证每个block里的warp比较合理(分多个warp,threads个数是32的整倍数),那样可以一个sm可以交替执行里面的warp,从而提高效率。

此外,在分配block时,要根据GPU的sm个数,分配出合理的block数,让GPU的sm都利用起来,提利用率。分配时,也要考虑到同一个线程block的资源问题,不要出现对应的资源不够。

        ——进阶:一个sm内部通过warp分发器对来的命令(以warp为单位)分发到不同port(端口)上,一个port内部有16个sp,对于warp内的32个thread,需要for循环两次。

        时间线概念,一个port的sp在一个时间片上完成一次逻辑运算,然后等待一定逻辑时钟周期得到本次运算的回馈值,才能做下一条运算,在等待的这段时间,该port的计算资源闲置了。为了避免它的闲置,硬件通过warp分发器将其他warp的指令分发到这个port上 。这是为什么一个block最好安排排出来多个warp(N*32threads)。

      ——二次进阶: 事实上,即使对于一个block中只有一个warp的情况,我们认为对于算法内部逻辑依赖较少的代码,编译器会自动识别哪些语句不存在相关性,warp在执行完这一条命令之后可以去获取其他命令,通过warp分发器再分发到prot上,而不一定在时间线上等待逻辑运算的返回值,从而复用计算资源。

 

 

其他人的一些面经

求职之路(2015南京站拿到百度、美团、趋势科技、华为offer):

https://blog.csdn.net/chhuach2005/article/details/39759165

面经中的各种问题汇总

语言基础,操作系统,计算机网络,数据库,设计模式,算法

https://www.cnblogs.com/forcheryl/p/4723797.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值