導航:首頁 > 源碼編譯 > 編譯pslite

編譯pslite

發布時間:2023-02-04 13:46:40

⑴ ps-lite概述

ps-lite旨在構建高可用分布式的機器學習應用。在ps-lite框架中,多個節點運行在多台物理機器上用於處理機器學習問題。通常會運行一個schele節點和多個worker/server節點。、

假設我們想要解決下面的問題:

其中(y i ,x i )是樣本集,w是權重。
我們想要通過minibatch隨機梯度下降(SGD,其中batch大小是b)的方式來解決這個問題。在時間t時,該演算法首先隨機挑選b個樣本,然後通過下面的公式更新權重w

我們給出兩個例子來說明ps-lite實現分布式解決這一問題的基本思想。

在第一個例子中,我們將SGD擴展為非同步SGD。我們讓server節點來維護w,server k獲取到w的第k個分片,標識為w k 。當從worker接收到梯度後,server k會更新它所維護的權重:

方法返回server從任意worker節點接收的梯段, 方法返回時間 時的訓練速率。
對於一個worker,每次它都會做四件事情:

ps-lite會提供 和 方法,用於和存有正確部分數據的server進行通信。

非同步SGD的語義和單機版本不同。因為單機版本worker之間沒有通信,所以就可能導致當一個worker節點正在計算梯度時權重發生變化。換句話說,每個worker都可能正在使用過期的權重。下圖展示了2個server節點和3個worker節點的通信過程:

同步SGD的語義與單機演算法完全相同,該模式使用scheler來管理數據的同步。

和 發布命令給worker和server,這個過程中 函數會一直等待,指定所有命令發布完成。
當worker接受到命令後,它會執行下面的函數:

這個過程和非同步SGD幾乎一模一樣,只是每次要處理b / num_workers個樣本。
而server節點相對於非同步SGD還要執行額外的一些步驟:

與單機演算法相比,分布式演算法增加了兩個額外的開銷,一是數據通信開銷,即通過網路發送數據的開銷;另一個是由於不完善的負載均衡和機器性能差異帶來的同步開銷。這兩個開銷可能會主宰大規模集群和TB級別數據的應用性能。

假設:

權衡結果如下:

從中我們得到如下結論:

⑵ 如何使用codelite進行單文件編譯

在Notepad++中,打開函數列表側邊欄:[視圖]菜單>>FunctionList雙擊其中的項目,即可跳轉。注意:要切換到正確的語言,FunctionList才能正常顯示函數。必要時要點擊其Reload(重新載入)按鈕。

⑶ PS-Lite使用

一種調試方式是記錄所有的通信日誌。可以通過指定 環境變數來實現:

可能會有如下輸出

這里 , 和 分別表示scheler,server和worker。

默認情況下PS-Lite會自動選擇一個可用的網路介面。但是,對於有多個網路介面的機器,我們可以通過環境變數 來指定網路介面。例如,要使用無限帶 介面,我們可以採用如下方式:

如果所有的PS-Lite節點都運行在同一台機器上,我們可以通過設置 來使用內存拷貝取代本地網路介面來提高性能:

如果我們想將PS-Lite移植到除 、 、 和 之外的其它集群資源管理器上,本章將會很有用。
要想啟動PS-Lite,我們需要提供為下面的環境變數提供正確的值:

網路傳輸中出現消息丟失是比較常見的現象,當一個重要的消息傳遞失敗時,程序會掛起。這時,可以讓PS-Lite為每一個消息發送一個額外的ACK,如果在指定時間內沒有收到ACK,則重傳這條消息。要想啟動這個功能,我們可以設置下面的環境變數:

⑷ [openharmony]liteos-a系統編譯之GN

在 文章 中已經分析openharmony的小型系統(liteos-a)編譯過程,最主要的就是調用gn/ninja/makefs三個命令最終生成可燒錄的鏡像文件
從前面文件可以看到hb build調用的gn命令參數如下

這里詳細分析一下gn工具在編譯過程中的使用

這里簡單介紹下GN工具的使用方法,gn語法可以參考 http://weharmonyos.com/openharmony/compile/gn/docs/
,已經熟悉的可以跳過

從上面圖中可以看到使用的命令類型為 gn gen <output_dir> [options] ,此命令就是為了將所有需要的BUILD.gn文件生成為*.ninja文件供ninja進行編譯; 可以通過 gn help gen 命令查看詳細的用法說明, 如下

下面重點說一下gn_cmd中的 [options]

liteos-a編譯系統的dotfile內容如下:

liteos-a是嵌入式系統,而編譯環境是linux系統,這就需要用到交叉編譯方式,這個就可以在環境配置中指定 target_os 、 target_cpu 、 board_cpu 等等信息
這些信息就是 buildconfig 參數指定的 BUILDCONFIG.gn 文件中配置的
除了以上信息,還配置了以下幾個重要信息

詳細信息可以查看 //build/lite/config/BUILDCONFIG.gn 文件內容

toolchain定義源碼編譯需要的工具,像編譯器、匯編器、連接器等等,一般在.gn所在目錄下有一個 toolchain 目錄,裡面的 BUILD.gn 定義詳細的編譯工具鏈信息
這里目錄結構如下:

從結構信息中可以看到定義了clang和gcc兩種工具鏈,通過變數 board_toolchain_type 來區分(此變數也是buildconfig中定義的),具體信息參見BUILD.gn文件內容,如下

在.gn文件所在目錄下的BUILD.gn就是入口,此文件做了以下幾個事情

這里重點說一下target為 ohos 的 group 如下:

這里也比較好理解,裡面就是讀取一個配置文件,幾級循環來處理配置文件中配置的內容。流程如下

到此就將此board下各模塊的依賴關系添加好了,然後 GN 會將依賴樹中所有的BUILD.gn生成對應的.ninja文件,並且在out的根目錄下生成下面幾個ninja的入口文件以及配置文件

⑸ codelite編譯顯示中文字元為亂碼,怎麼解決

啟用C99,並在控制台顯示中文: Settings, Build Settings, gnc gcc, Switchs,在Source選項後面增加" -std=c99 -fexec-charset=GBK ",添加後,Source switch看起來是這樣:
-c -std=c99 -fexec-charset=GBK

閱讀全文

與編譯pslite相關的資料

熱點內容
割乳酷刑電影 瀏覽:234
怎麼給電腦app分身 瀏覽:821
資治通鑒pdf中華書局 瀏覽:187
穿越民國種馬 瀏覽:628
新搬來的新居電影 瀏覽:561
有個小說主角叫姜 瀏覽:602
重生德國一戰的小說 瀏覽:249
給點能看的網站 瀏覽:670
77電影網 瀏覽:68
在線可以觀看的網站 瀏覽:827
電梯日本電影 瀏覽:73
有部電影裡面有兩個人一個拿白色光劍 瀏覽:63
程序員如何自行車通勤 瀏覽:213
打開文件夾一直彈出新的窗口win10 瀏覽:475
外出2015孫藝珍完整板 瀏覽:409
男主角叫奧斯丁的電影 瀏覽:901
linux殺進程命令 瀏覽:597
主角叫秦天系統小說 瀏覽:703
韓國倫理游泳池 瀏覽:6
電影殺手為小男孩改名叫林默 瀏覽:373