2017-01-29 5 views
0

人数がCUDAアクティブ経糸CUDAで

occupancy = active_warps/maximum_active_warps 

として定義される経糸常駐 CUDA経糸とアクティブの違いは何ですか?

私の研究によれば、Web上の研究から、そのブロックの実行期間全体にわたってブロックが常駐している(つまり、レジスタ/共有メモリファイルとともに割り当てられている)ようです。 「活動している」との違いはありますか?

ごくわずかなレジスタと共有メモリを使用しているカーネルを使用していると、使用するレジスタ/共有メモリの量に依存するため、maximum_active_warps常駐ブロックを使用して100%占有することができますか?

+0

[この質問](http://stackoverflow.com/questions/41607768/questions-of-resident-warps-of-cuda/41608401#41608401)に関連する可能性があります。 – Taro

答えて

2

常駐CUDAワープとアクティブなワープとの違いは何ですか?

この文脈ではおそらく何もない。

私の研究によれば、ブロックはその実行期間全体にわたってSM上に常駐している(つまり、レジスタ/共有メモリファイルとともに割り当てられている)ようです。 「活動している」との違いはありますか?

ここでは、ワープに関する質問からブロックについての質問に切り替えました。しかし、この文脈では、もう一度、同じであると考えることができます。私は非常に少数のレジスタと共有メモリを使用するカーネル.. をお持ちの場合は占有率がちょうど共有 レジスタ/の量に依存するため

は、それは私がmaximum_active_warps常駐ブロックを持っていると 100%の占有率を達成できることを意味していメモリが使用されますか?

いいえ、ワープとブロックは同じものではありません。あなた自身が引用しているように、占有率はブロックではなくワープの観点から定義されます。ワープの最大数は、ハードウェアによって48または64に固定されています。ブロックの最大数は、ハードウェアによって8,16または32に固定されます。同じではない2つの独立した制限があります。与えられたカーネルが達成することができる有効な占有率に影響する可能性があります。

+0

「アクティブ」ワープは、現在1つのコアによって実行されているワープを意味するのか、または単に「居住者」を意味するのでしょうか?つまり、割り当てられているブロックのリソースがありますか? – Dean

+0

ワープが1つのコアで実行されることはありません。ワープ内の各スレッドは、論理的に1つのコアで実行されます。常駐とアクティブの違いは純粋なセマンティクスです。実際には「常駐スレッド」が使用されているリンクを引用したり提供したりしていないので、読んでいないテキストの作成者の意図 – talonmies