2014-04-25 83 views
1

現代操作系統有GPU的不支持,或多或少把他們當作普通的I/O device.there在該領域的一些研究試圖管理的GPU在操作系統級別,但他們聲稱GPU程序爲不可搶佔:一旦工作單元啓動,在不破壞通道數據的情況下不可能中斷它。什麼使GPU程序不可搶佔?

所以我要問的是:

  • 這是真的,這是不preemtible?
  • 如果它是不可搶佔的,是什麼讓它不可搶奪,是因爲硬件 的設計還是什麼原因?
  • 如果它是不可搶奪的,我們需要使它成爲可搶佔的?

如果有人能給出清晰的解釋,我將非常感激。

回答

1

GPU始終搶佔自己,但只能與來自同一內核的其他工作項目搶佔。如果計算單元正在等待內存讀取或寫入,它將執行其他工作項目。它基本上是單指令多線程。但是,中途停止工作並切換到其他工作是沒有意義的。您需要跟蹤大量的狀態(與只有寄存器組的串行處理器不同,您將擁有乘以計算單元數量的所有數據)。 GPU作業都設計爲快速運行,因此通過系統循環作業更加高效,可以在部分完成的作業之間切換。這就是說,一些現代GPU分割了硬件,並且可以在不同的工作中同時處理不同的部分。

0

在過於簡化的風險:

比方說,我有GPU中定義了堅實的對象。爲了簡單起見,假設對象是一個立方體,並且GPU保持8個頂點(並且GPU非常慢)。

讓我開始輪換。我已經在每個頂點做了矩陣乘法。我做了3個。然後我被搶先了。

我的立方體不再是立方體。

如果您希望它具有可預測性,您需要進行某種事務處理(回滾減慢)和硬件支持以提供可搶佔接口。