Neon 在多執行緒中怎麼用呢?

2021-10-25 10:00:44 字數 774 閱讀 7490

遇到了乙個問題,我用多執行緒加速了乙個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...