遇到了乙個問題,我用多執行緒加速了乙個for迴圈結構後,再想用neon加速,發現neon加速前後無效果。問題來了,arm上的neon單元在多執行緒中還有效果嗎?
我先假設是neon無法用在多執行緒中,
我只要證明【mcec】:
1. neon是多核cpu共享的區域,每個核都會獨佔neon,否則就得交換記憶體浪費時間,
證明:查資料:
圖上清清楚楚寫著,每個cpu核上都有乙個neon單元。
結論:命題為假,arm neon可以在多執行緒中應用。
那為什麼會加速後沒效果呢?
效果是指速度提公升,沒效果,是指多核cpu時間線上,從所有核開始運算到全部結束的時間沒提公升。
假設2:硬體不支援neon加速,(因為我只用了我自己的手機測試了)
假設3:neon程式在多執行緒中存在 執行緒互相爭奪資源而等待。
針對假設2:
issue 1:檢視我的手機的架構,看支援的是neon的哪個版本。
處理器:榮耀9,kirin 960 ==》4x cortex-a73 @2.36ghz,
官網顯示是有neon支援的。
issue 2:找乙個高階點的手機測試一下。
證明:看是否是因為我自己的手機的效能太差了,加速效果不明顯。借用華為meta30測試,
Python多執行緒與多執行緒中join 的用法
文章 python多執行緒與多程序中join 方法的效果是相同的。下面僅以多執行緒為例 首先需要明確幾個概念 知識點一 當乙個程序啟動之後,會預設產生乙個主線程,因為執行緒是程式執行流的最小單元,當設定多執行緒時,主線程會建立多個子執行緒,在python中,預設情況下 其實就是setdaemon f...
Python多執行緒與多執行緒中join 的用法
python多執行緒與多程序中join 方法的效果是相同的。下面僅以多執行緒為例 首先需要明確幾個概念 知識點一 當乙個程序啟動之後,會預設產生乙個主線程,因為執行緒是程式執行流的最小單元,當設定多執行緒時,主線程會建立多個子執行緒,在python中,預設情況下 其實就是setdaemon fals...
Python多執行緒與多執行緒中join 的用法
python多執行緒與多程序中join 方法的效果是相同的。下面僅以多執行緒為例 首先需要明確幾個概念 知識點一 當乙個程序啟動之後,會預設產生乙個主線程,因為執行緒是程式執行流的最小單元,當設定多執行緒時,主線程會建立多個子執行緒,在python中,預設情況下 其實就是setdaemon fals...