天天看點

A Survey of Techniques for Architecting and Managing Asymmetric Multicore Processors(第六章)

A Survey of Techniques for Architecting and Managing Asymmetric Multicore Processors(第六章)

  1. 改進AMP能效
    • Kumar通過動态估計程式對資源的需求,然後将其映射到合适的core上,以節省能源
    • Sawalha提出了一種動态排程的技術。應用程式行為随程式階段的變化而變化,動态地調整映射可以顯著地降低能耗。方法:間隔10K條指令(指令視窗),根據目前指令塊的執行資訊,估計目前工作集的簽名,判斷是否程式行為已經發生了變化。如果發生變化,則估計每個類型的核上該線程的EDP,選擇最小的EDP的core執行。簽名和EDP會被紀錄下來,之後可以查找重複使用
    • Nishtala提供了一種基于程式的計算和存儲需求的排程政策。計算和存儲需求可以通過檢測送出指令數和LLC的缺失率來反映。對于高IPS和低LLC缺失率的線程排程到大核上執行,低IPS和高LLC缺失率的線程排程到小核上執行
    • Padmanabha提出傳統的線程遷移政策無法快速應對細粒度的性能變化(數百條指令)。解決:存儲目前程式的上下文和每個階段的執行曆史,利用這些曆史資訊進行預測階段變化,然後提前将程式遷移到合适的核上執行
    • Zhang提出了使用一組規則指導線程排程。實作設定一組判斷規則(決策樹),然後根據線程運作時行為,例如cache misses,取指周期,停頓周期等資訊,進行規則判斷,最終給出能效最高的映射方案
  2. 改善AMP性能
    • 帶有相關關系的線程,以推測的方式在小核上并行執行,進而提高性能。但是推測錯誤會損失能量,是以需要動态的線程級别的推測管理
    • Luo提出了一種機制用于決定推測執行的線程在哪一種類型的core(SMT和CMP)上執行,進而能夠提高能效。當推測的線程和正常的線程沖突太多,此時推測的線程放在獨立的CMP中執行,能效會更高,反之亦然。當TLP較高時,使用單獨的CMP能夠提高性能;當cache缺失率較高或者同步操作導緻的停頓過于頻繁時,SMT能夠提供更高的能效。
    • Liu提出了一種動态排程的技術,用于在功耗限制的情況下,提高性能。該技術采用了一種新的算法,将通用的映射問題轉換為一個0-1的整數線性程式,并且提供了一種算法複雜度為n2的解決方法
    • Becchi提出在AMP中,動态線程遷移政策能夠比靜态的政策提供更大的性能改進
  3. 解決多線程應用的瓶頸
    • 在AMP中如果使用一個簡單的排程政策,在某些情況下可能不會提升MT程式的性能,甚至還會降低性能(多線程程式中的CS代碼,串行代碼卻運作在了小核上)
    • Suleman提出了将線程中的CS代碼在大核上運作,以加速執行,同時減少線程的串行化。隻在大核上執行CS代碼,可以避免在緩存之間頻繁遷移鎖和共享資料。當多個CS争用大核時,必須能夠保證選擇其中一個CS執行,其它在小核執行,否則需要大核支援SMT
    • Lakshminarayana提出大多數在一起建立的線程的執行時間接近(并行程式的特點,一個代碼多個線程)。此時線上程建立時,紀錄這個特征,在多個線程中選擇剩餘執行時間最長的放在大核上執行,以提高性能
    • Saez提出了一種在AMP中排程單線程和多線程程式的技術。通過比較不同程式的utility factor來決定哪一個程式應該放在更快的cores上執行。UF代表着目前程式占用所有的快的core和一些其它的更慢一點的cores和目前程式隻在慢的cores上運作時的加速比。
    • Joao提出,在MT程式中,性能受限的原因:較慢線程的影響(cache miss等),瓶頸的影響(CS)。這兩種加速方法在結合時,需要考慮分别帶來的好處(取決于程式目前的階段,輸入,HW0)。論文針對這兩種方法,提供了一種度量方式,進而能夠決定哪一個應該在大核上執行
    • Markovic提出了一種硬體中的線程的lock section-aware 排程政策(TLSS) 。為了避免修改OS的排程政策,OS始終隻會認為線程會被排程在相同的邏輯核上,而不是真實AMP中的實體核。此時利用TLSS将邏輯核中運作的線程映射到實體核中。論文認為,當一個core最近從執行核心代碼過渡到了使用者代碼,标明一個線程達到了一個同步點并等待一個lock。此時TLSS會盡可能将該線程排程到實體的大核上加速執行。如果沒有發現這種情況,TLSS會将目前在小核上運作的線程,在下一個硬體切換映射時,将其遷移到大核
  4. AMP中的公平性保證
    • Petrucci利用一種彩票排程的方法減少AMP中線程的不公平性。首先需要監視目前線程在目前核中的性能,并估計該線程在其他的核上的性能。然後為每個線程配置設定一定數量的彩票,彩票的數量取決于在大核上運作和在小核上運作線程的能效比。根據每個線程得到的彩票的數量進行排程(抽簽),越多越有可能放在大核上執行。
    • Van提出以性能為導向或者固定的排程政策都會導緻較大的不公平性。同時論文提出了兩種保證更公平并且高性能的排程政策
      • “等時間”排程在每個核心類型上運作每個線程(或工作負載)的時間是相等的
      • “等進度”排程,目标是在每個核心類型上完成相同數量的工作
    • Saez提出一種改善公平性并且能夠保證一定的吞吐量。主要思考是保證每個程式經曆了相同的由于線程遷移而帶來的減速。對于單線程程式,使用計數器紀錄目前程式相對于整個程式占用一個大核的執行情況的進展(目前進展/在大核執行的進展)。對于多線程程式,紀錄目前線程相對于同一個程式中其它線程的進展情況。如果紀錄的相對進展情況超過某個門檻值,則需要遷移線程。
  5. 保持應用的優先級
    • 為高優先級程式保留相同的核心(大核或者小核)
    • 為高優先級程式保留不同類型的核,低優先級程式使用剩餘的核
      A Survey of Techniques for Architecting and Managing Asymmetric Multicore Processors(第六章)
  6. AMP中避免性能差異
    • 在AMP中将線程排程到不同的核上,有時會有非常大的性能差距,這個時候就需要盡可能避免這種差異
    • Balakrishnan提出了一種asymmetry-aware(已知異構特性的)OS排程器。該排程器會将應用從慢的核遷移到快的核,以保證一個更快的核隻會在更慢的核之後空閑,即快的核會一直工作
    • Li提出了一種OS排程器,它會紀錄每個核在啟動時的計算能力,并且在運作是根據每個核的計算能力配置設定負載,已實作負載平衡。當更快的核沒有得到充分利用時,線程會被遷移到這些核。
    • Morad提出在多個共同運作的多線程應用,串行線程會和并行線程一起競争處理器資源。是以他們提出一種排程政策,賦予串行線程更高的優先級,進而更有可能在更快的核上執行。當多個應用都有串行線程時,隻有一個線程在更快的核上執行,執行時間固定,其它的線程在剩餘的核上執行。
  7. 針對特定應用領域的AMP優化技術
    • Ko提出在移動裝置中,應用會顯示出非常不同的應用需求。例如多媒體應用會有很高的CPU使用率,而背景程序則隻有很少的CPU使用率。是以将所有的背景任務配置設定給一個小核。當大核無任務時,自動關閉,節約能源
    • Ra也是針對于移動領域,他們将一個高性能應用處理器AP和低功耗處理器LP組合,提供更高的能效。傳感器任務和緩沖任務在LP上執行,計算密集程式在AP上執行
    • Zhu針對的是移動端的浏覽器,Web頁面的加載時間對于使用者影響非常大,同時低功耗也是最大化電池壽命的必要條件。是以他們提出一種排程技術,将Web頁面加載工作排程到AMP中最适合的核上執行,同時提供最有的DVFS設定,進而滿足嚴格的執行時間限制同時節省能源
    • Muhlbauer提出對于并行查詢處理任務,大核或者小核能夠提供更好的EDP,取決于LLC能夠容納所有工作集。論文建構了一個分段多元線性回歸模型,用于估計 給定的核的類型和特定的工作負載參數 的工作負載的性能和能源消耗,進而将負載排程到能夠最小化EDP的核上執行

繼續閱讀