執行設備查詢時,我想知道“每個多處理器的最大執行緒數”和“每個塊的最大執行緒數”之間的區別。據我了解,gpu上的sm = multiprocessor = block,但我不明白為什么這兩個值不同。多處理器中有多個塊嗎?
Maximum number of threads per multiprocessor: 1536
Maximum number of threads per block: 1024
還有一個問題是thread和core的關系,thread=core匹配是否正確?
uj5u.com熱心網友回復:
多處理器中有多個塊嗎?
是的,可以。
很簡單,sm == 多處理器。sm != 塊
SM(多處理器)是一個硬體物體。執行緒塊是一個軟體物體,基本上是執行緒的集合。
一個 SM 或多處理器可以駐留超過 1 個塊。要完全占用最大執行緒數為 1536 的 SM,您需要駐留三個 512 執行緒塊。
還有一個問題是thread和core的關系,thread=core匹配是否正確?
一個執行緒代表一個指令序列。GPU 中的“核心”是 SM 中的一個功能單元,它處理某些指令型別,即 32 位浮點加法、乘法和乘法加法指令。其他指令型別由 SM 中的其他(種類)功能單元處理。
當執行緒具有這些 32 位浮點指令型別之一要處理時,它將需要一個內核。如果它碰巧有不同的指令要處理,比如 LD(加載)指令,它將需要不同的功能單元,特別是在這種情況/示例中的 LD/ST(加載/存盤)單元。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/447442.html
上一篇:如何在java中使用同步塊?
