我的研發面經_顯卡的硬件結構

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章