<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用NVIDIA Nsight Eclipse Edition的DRIVE PX應用程序開發

設計idea ? 來源:互聯網 ? 作者:佚名 ? 2018-04-28 14:24 ? 次閱讀

NVIDIA驅動PXAI車載電腦使OEM,一級供應商,初創公司和研究機構,加快自駕車系統的開發。用于DRIVE PXNVIDIADriveWorks配套軟件開發工具包(SDK)包含許多針對自動駕駛應用的開源參考樣本,開發工具和庫模塊。

在正確配置開發環境之后,您可以自定義這些示例或在您的Linux主機上開發自己的應用程序,在主機或DRIVE PX上執行它們。圖1顯示了常見的編譯和執行流程。

NsightEclipse 1圖1. DriveWorks應用程序的編譯和部署過程

我將向您展示如何配置NVIDIANsight EclipseEdition以啟用整個主機編譯和交叉編譯過程。Nsight Eclipse提供了一個由Eclipse平臺支持的全功能集成開發環境(IDE)。一體化集成環境允許您編輯,構建,調試和分析CUDA C / C ++應用程序。您將學習如何在主機上以及遠程DRIVE PX 2上導入,編譯,運行和調試DriveWorks項目。這直接從Nsight IDE內部進行,利用原始示例makefile。

預備步驟

Nsight Eclipse支持一套豐富的商業和免費插件,并附帶CUDA Toolkitfor Linux和Mac。我們假設您最近在主機上運行了NVIDIA DriveInstall。NVIDIA DriveInstall會在主機和目標系統上自動安裝以下項目:

?NVIDIA DRIVE?SDK,
?CUDA工具包,
?cuDNN,
?DriveWorks,
?上述庫依賴項。

您應首先制作原始DriveWorks示例文件夾的副本,以避免覆蓋原始源代碼。您只需要從DriveWorks導入DriveNet樣品;你將不需要其他樣品。

確保DriveNet示例在繼續之前正確運行。通過在主機和DRIVE PX 2上的終端窗口中執行以下代碼來執行此操作。DriveWorks樣品的主機執行和主機編譯只能在裝有NVIDIA GPU的x86 PC上運行。在PC上編譯需要基于Maxwell的GPU,但建議使用基于Pascal的GPU(GeForce GTX 9xx)。您只能在PC上不使用Maxwell,Pascal或更高版本的NVIDIA GPU的情況下交叉編譯DRIVE PX 2的樣本。

cd/usr/local/driveworks/bin./sample_drivenet

此外,請確?!笆謩印敝鳈C編譯和DRIVE PX 2交叉編譯成功運行。在您的主機上,執行以下操作:

cd/usr/local/driveworkssudocp-r樣本樣本-原始光盤樣本-原創sudomkdirbuild-主機cdbuild-主機sudocmake..sudomake-j

現在為您的DRIVE PX進行交叉編譯。查找主機中的DriveSDK文件夾并記下其完整路徑。在以下代碼片段中將DriveSDK路徑替換為“”。

sudomkdirbuild-targetcdbuild-targetsudocmake-DCMAKE_BUILD_TYPE=發布-DCMAKE_TOOLCHAIN_FILE=/usr/local/driveworks/samples-original/cmake/Toolchain-V4L。cmake-DVIBRANTE_PDK:STRING=/drive-t186ref-linux..sudomake-j

假設上述操作正常運行,請配置Nsight Eclipse使其自動運行。首先,復制主機上現有的DriveWorks源代碼文件夾。在主機終端窗口中,鍵入:

cd/usr/local/driveworkssudocp-r樣本樣本-nsight

保持距離只有這些文件夾中samples-nsight/src的文件夾:framework,dnn,drivenet。

插件修改

現在我們來運行Nsight!由于示例工作目錄位于“/ usr”中,因此需要將Nsight Eclipse作為“根”打開。

sudo/usr/local/cuda/bin/nsight

在本教程中,您將使用“cmake4eclipse”插件,它將幫助您配置CMake構建過程。該插件還從DriveWorks CMake配置文件中自動派生包含。

從Nsight Eclipse主菜單中選擇“Help> Install New Software ...”,然后從“Work with”下拉列表中選擇“http://download.eclipse.org/releases/juno/”。在搜索字段中輸入“market”并點擊圖2所示的“Marketplace Client”。之后,選擇“Next>”并按照提示完成安裝。

粘貼圖片0圖2.安裝Eclipse marketplace客戶端

現在讓我們安裝市場上的cmake4eclipse插件。在Nsight主菜單中,在Nsight主菜單中選擇“Help> Eclipse Marketplace ...”,然后在搜索窗口中輸入“cmake”。現在通過單擊“Install”安裝cmake4eclipse插件,如圖3所示。按照提示完成安裝。或者,您也可以安裝CMake Editor插件以及語法高亮顯示。

圖3.安裝cmake4eclipse插件

一旦你安裝了插件,創建一個新的CUDA C / C ++項目:“文件>新建> CUDA C / C ++項目”。將“DriveNet”寫為“項目名稱”,取消選中“使用默認位置”并瀏覽至“/ usr / local / driveworks / samples-nsight”。

選擇“空項目”作為“項目類型”,選擇“CUDA Toolkit 9.0”作為“工具鏈”。點擊“下一步”后,將剩余選項保留為默認值,如圖4所示。

截圖從2018 01 09 17 20 23圖4.創建一個新的CUDA C / C ++項目。

現在不要指定“目標系統”。您將為主機和目標創建兩種不同的配置。

主機環境配置

現在我們來完成設置主機環境配置的步驟:

  1. 右鍵單擊“DriveNet”并從Project Explorer窗口中選擇“Properties”。

  2. 現在進入“Build> CMake”標簽并點擊“管理配置...”。

  3. 在彈出的新窗口中輸入build-host作為“Name”,然后選擇“Release:CUDA Toolkit 9.0”作為“Default configuration”,為主機創建一個新的配置。

  4. 點擊“確定”和“設置活動”。

  5. 現在返回到“DriveNet的屬性”窗口并修改“文件夾”字段,使其僅包含“$ {ConfigName}”。

  6. 切換到“符號”選項卡,單擊“添加”按鈕,然后在“要定義的CMake緩存條目”字段中鍵入CMAKE_BUILD_TYPE作為“變量名稱”,STRING作為“類型”,并釋放為“值”。

  7. 點擊“確定”,然后點擊“應用”確認。

如果您有點困惑,請使用圖5作為參考。這會為主機創建一個發布類型配置。稍后,您將為目標創建一個調試類型配置。

cmake nsight 1圖5.主機的CMake選項卡的配置。

在左側的“工具鏈編輯器”選項卡中,選擇“Cmake Builder(GNU Make)”作為“當前構建器”(如圖6所示),以便在構建項目時使用cmake4eclipse插件在Nsight內。

截圖從2018 02 23 12 44 05圖6.工具鏈編輯器配置。

最后,進入“C / C ++常規>預處理器包含路徑,宏等”,找到“Providers”選項卡,選擇“CMAKE_EXPORT_COMPILE_COMMANDS Parser”行并通過點擊“上移”將其移動到列表頂部。 ,如圖7所示。包含路徑的預處理器現在將自動從CMake配置文件中導出。

截圖從2018 02 23 12 20 28圖7.預處理器包含路徑配置選項卡

點擊“應用”,然后點擊“確定”確認。編輯CMakeLists.txt文件以僅構建DriveNet示例:替換該行

設置(SAMPLES框架;...

有:

設置(SAMPLES框架;dnn;drivenet)

您現在已準備好構建該項目。點擊“Build”,使用“Project> Build Project”命令。

DriveNet示例源文件可在“src> drivenet> drivenet> main.cpp”中找到?!?/span>sample_drivenet可執行文件位于”build-host> src> drivenet> drivenet> sample_drivenet“中。右鍵單擊它并選擇“作為>本地C / C ++應用程序運行”以在主機上啟動它。

目標環境配置

現在是為應用程序最終駐留的DRIVE PX 2目標設備添加第二個環境的時候了。目標配置與您剛剛設置的主機類似,但需要更多設置。我們來看看這個過程:

  1. 再次在左列中選擇“DriveNet”項目,右鍵單擊并打開“屬性”窗口。

  2. 從“Build”標簽中選擇“CMake”,然后點擊“Manage Configurations ...”。

  3. 創建一個稱為“build-target”的新配置,并選擇“Debug:CUDA Toolkit 9.0”作為“Default configuration”。

  4. 由于我將演示如何在此示例上運行Nsight Eclipse調試器,因此我為此配置指定了“調試:CUDA Toolkit 9.0”。如果您對調試不感興趣,請選擇“發布:CUDA Toolkit 9.0”。

  5. 復制與圖6中顯示的主機配置相關的步驟,但是這次在“符號”選項卡中添加更多條目:

    1. “變量名稱”:CMAKE_BUILD_TYPE,“類型”:“STRING”,“值”:調試

    2. “變量名稱”:CMAKE_TOOLCHAIN_FILE,“類型”:“FILEPATH”,“值”:/usr/local/driveworks/samples-nsight/cmake/Toolchain-V4L.cmake

    3. “變量名稱”:VIBRANTE_PDK,“類型”:“路徑”,“值”:

確保在主機的“DriveSDK”文件夾中將“”替換為“drive-t186ref-linux”的路徑。檢查圖8以確保您正確完成了該步驟。

cmake nsight目標圖8.目標的CMake標簽配置。

重復與“主機配置”相同的“工具鏈編輯器”(來自圖7)和“預處理器包含路徑,宏等”(如圖8),選擇“build-target [Active]”。點擊每個標簽的“應用”,然后點擊“確定”繼續。

您現在可以按照與構建主機版本相同的步驟交叉編譯該項目。首先通過“Project> Build Configurations> Set Active”選擇“build-target”,然后使用“Project> Build Project”命令單擊“Build”來構建項目。您將在“build-target> src> drivenet> drivenet”中找到可執行文件。

從Nsight Eclipse運行DRIVE PX上的示例

假設DRIVE PX駐留在本地網絡上,您可以將Nsight Eclipse配置為在Drive PX上遠程執行DriveNet示例。首先在DRIVE PX的終端窗口中輸入ifconfig,找到您的“<目標IP地址>”。

配置Nsight Eclipse可在每次啟動時自動將更新的交叉編譯版本的樣本傳輸到DRIVE PX。通過創建一個新文件夾并將其所有權設置給nvidiaDRIVE PX上的用戶來完成。

$sshnvidia@$cd/usr/local/driveworks$sudomkdirbin-nsight$sudochown-Rnvidia:nvidiabin-nsight$exit

回到Eclipse中,點擊“運行>運行配置”頂部菜單。在“C / C ++遠程應用程序”下面添加一個新配置,并將sample_drivenet_remote鍵入為“Name”。在“遠程連接”旁邊,選擇“管理”,并將<目標IP地址>作為“主機名稱”,nvidia作為“用戶名稱”,nvidia @ <目標IP地址>作為“標簽”,如圖9所示。然后點擊“完成”。

截圖從2017年03 09 08 01 41 1圖9.指定到您的DRIVE PX的網絡連接。

在“遠程工具包”旁邊,單擊“管理”,然后在下一部分中單擊“檢測”以識別工具包路徑:/usr/local/cuda-9.0/bin應找到。如果不是,則需要在目標上手動選擇CUDA工具包路徑。

要完成配置,請選中“上載本地可執行文件”并鍵入可執行文件的完整遠程路徑:它應該是/ usr / local / driveworks / bin-nsight / sample_drivenet。這樣,在運行之前,Nsight Eclipse會自動將更新后的DriveNet樣本發送到目標。

在“本地”選項卡中,確保選擇“DriveNet”項目,并選擇sample_drivenet使用“搜索項目...”按鈕運行的C / C ++應用程序。在“環境”選項卡中,單擊“新建”,然后鍵入DISPLAY作為“名稱”,并將0作為“值”?;蛘?,如果要運行示例,可以將CUDA_VISIBLE_DEVICES作為“名稱”添加,將1作為“值”在iGPU上而不是DRIVE PX上的dGPU上2.單擊“運行”以在目標上啟動應用程序。

在DRIVE PX上運行的調試樣例2

您現在已經為DRIVE PX 2指定了遠程目標系統配置。這使配置可用于在“運行>調試配置”菜單中調試樣本。在繼續之前,花一些時間看看這個窗口中提供的許多調試功能。

默認情況下,Nsight自動從遠程目標下載調試過程的共享庫。然而,這大大增加了調試執行時間。您應該直接將Nsight Eclipse指向主機系統中已有的目標庫。切換到“調試器>共享庫”選項卡,并取消選中“從遠程目標下載共享庫”。然后點擊“添加...:”添加以下路徑

  • 在/ usr /本地/ driveworks /目標/ aarch64 Linux的/ lib目錄

  • 在/ usr /本地/ CUDA /目標/ aarch64 Linux的/ lib目錄

  • /驅動-t186ref-LINUX / targetfs / usr / lib中

  • /驅動-t186ref-LINUX / targetfs / LIB / aarch64-Linux的GNU

  • /驅動-t186ref-LINUX / targetfs / usr / lib中/ aarch64-Linux的GNU

替換為主機上Drive Drive的路徑,然后從該窗口啟動調試器。這將Nsight切換到調試器的角度,并在代碼中的第一條CPU指令處中斷。在右上窗格中找到CUDA視圖(多維數據集圖標),然后選擇“中斷應用程序內核啟動”。這會導致調試器在GPU上啟動的任何CUDA內核上自動中斷。

您現在可以恢復應用程序,該應用程序一直運行到CUDA內核中第一個斷點為止。從那里,您可以瀏覽左上窗格中的CPU和GPU調用堆棧,如圖11所示。在右上窗格中,您還可以檢查變量,寄存器和GPU內核執行配置(CUDA線程塊的數量和每個塊的線程數)。最后,反匯編視圖可以很容易地看到在執行代碼時如何更新寄存器值。

在GPU上的特定位內核代碼中設置一個斷點,通過雙擊代碼中相應的行號來消除它。(但請記住,單步執行一個線程會導致同一個warp中的其他線程也步進。)

當你完成調試時,點擊紅色的停止按鈕退出應用程序。

截圖從2017年11月22日17 40 28 1圖10.使用Nsight Eclipse Edition的遠程CUDA調試

在DRIVE PX 2上進行性能分析

現在您已經對樣本進行了調試,您可以在Nsight上運行DRIVE PX 2時對應用程序進行配置。初始遠程目標系統配置再次可用于遠程配置。但是,請記住在“Make Target”配置中將CMake構建類型更改為Release。

如果未指定-DCMAKE_BUILD_TYPE變量,則“Release”將是默認設置,如圖4所示。單擊“Run> Profile configurations”開始分析并選擇“C / C ++ Remote Application”列表下的正確元素。請記住在右側的“Profiler”選項卡中指定一個執行超時 - 例如60秒 - 這會在指定時間后自動殺死應用程序。

之后,點擊“配置文件”。Nsight剖析器透視圖應自動打開。等待Nsight運行應用程序以創建執行時間線,包括在GPU上執行的所有CUDA運行時和內核調用,如圖12所示。完成后,“屬性”選項卡將顯示您從此時間線中選擇的任何事件的詳細信息。這些事件也可以在下面的窗格的“詳細信息”選項卡中以文本形式查看。

截圖從2017 11 20 12 07 41 1圖12.使用Nsight分析器可以以直觀的方式深入分析CUDA內核。

檢查時間線視圖下方的分析選項卡以進一步分析性能。這使您可以通過在代碼上運行更高級的分析會話來輕松識別瓶頸

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • NVIDIA
    +關注

    關注

    14

    文章

    4670

    瀏覽量

    102065
  • AI
    AI
    +關注

    關注

    87

    文章

    27177

    瀏覽量

    264949
  • 自動駕駛
    +關注

    關注

    775

    文章

    13214

    瀏覽量

    163894
收藏 人收藏

    評論

    相關推薦

    CYW20829從Eclipse為Modustoolbox創建\"新應用程序時出現錯誤\"的原因?

    CYW20829]從 Eclipse 為 Modustoolbox 創建\"新應用程序時出現錯誤\"
    發表于 05-22 06:12

    idea可以運行eclipse項目嗎

    可以運行Eclipse項目。Eclipse是一個開發環境,主要用于Java程序開發,但它也支持其他編程語言如C++、Python等。通過
    的頭像 發表于 12-06 13:57 ?1409次閱讀

    eclipse安裝web插件步驟

    Eclipse 是一款功能強大的集成開發環境 (IDE),廣泛用于 Java 開發和各種 Web 應用程序開發。通過安裝適當的插件,可以將
    的頭像 發表于 12-06 13:48 ?577次閱讀

    eclipse中沒有web怎么辦

    Eclipse中沒有Web的情況下,可以采取以下的解決方法: 第一種方法是通過Eclipse的插件來添加Web開發功能。原始的Eclipse版本可能不包含Web
    的頭像 發表于 12-06 11:30 ?1520次閱讀

    eclipse怎么使用命令行

    Eclipse是一種功能強大的集成開發環境(IDE),可用于開發各種類型的應用程序,包括Java、C/C++、Python等。雖然Eclipse
    的頭像 發表于 12-06 11:26 ?1288次閱讀

    開發java應用程序的基本步驟是

    ava是一種面向對象的編程語言,廣泛用于開發各種類型的應用程序。在開發Java應用程序時,有一些基本步驟需要遵循,以確保應用程序的正確性和可
    的頭像 發表于 11-28 16:52 ?838次閱讀

    領先的電子制造商選擇 NVIDIA DRIVE Hyperion 9,內置 DRIVE Thor 和新一代傳感器架構

    NVIDIA 創始人兼首席執行官黃仁勛 與 Foxconn 董事長兼首席執行官劉揚偉共同宣布雙方長期合作的最新進展。兩家公司將攜手為全球汽車市場開發新一代智能電動汽車(EV)平臺。 Foxconn
    的頭像 發表于 10-20 02:00 ?265次閱讀
    領先的電子制造商選擇 <b class='flag-5'>NVIDIA</b> <b class='flag-5'>DRIVE</b> Hyperion 9,內置 <b class='flag-5'>DRIVE</b> Thor 和新一代傳感器架構

    使用SDAccel開發計算存儲應用程序

    電子發燒友網站提供《使用SDAccel開發計算存儲應用程序.pdf》資料免費下載
    發表于 09-18 10:18 ?0次下載
    使用SDAccel<b class='flag-5'>開發</b>計算存儲<b class='flag-5'>應用程序</b>

    使用 NVIDIA DOCA 2.2 加速數據中心工作負載和 AI 應用程序

    NVIDIA DOCA SDK 和加速框架為開發者提供了豐富的庫、驅動程序和 API,以便為 NVIDIA BlueField DPU 和 ConnectX 智能網卡創建高性能
    的頭像 發表于 09-05 19:40 ?431次閱讀
    使用 <b class='flag-5'>NVIDIA</b> DOCA 2.2 加速數據中心工作負載和 AI <b class='flag-5'>應用程序</b>

    iTOP-RK3568開發板ubuntu環境下安裝Eclipse

    eclipse 是使用 Java 語言開發的,一個 Java 應用程序,這意味著 eclipse 只能運行在 Java虛擬機上。倘若沒有安裝 JDK(Java Development
    發表于 08-16 11:32

    安裝Keil MDK for Holtek Edition 1.0版應用程序說明

    ARM為使用基于ARM Cortex-M0+處理器的Holtek設備的軟件開發人員提供了免費使用的專業工具套件。 針對Cortex-M0+的免費Keil MDK Holtek版包括ARM C/C++
    發表于 08-11 06:51

    禾賽與NVIDIA合作再升級,激光雷達集成至NVIDIA DRIVE Sim

    今日,禾賽科技宣布與 NVIDIA 合作升級,正式入駐 NVIDIA Omniverse 生態系統。汽車廠商及自動駕駛企業的開發者可通過 NVIDIA
    的頭像 發表于 08-09 17:49 ?1439次閱讀

    Arm?Development Studio Morello Edition入門指南

    Arm?Development Studio Morello Edition是一款適用于裸金屬嵌入式系統和基于Linux的系統的專業軟件開發解決方案。它涵蓋了從啟動代碼和內核移植到應用程序和裸機調試
    發表于 08-02 14:39

    禾賽與英偉達NVIDIA合作再升級 激光雷達集成至NVIDIA DRIVE Sim

    8月1日消息,禾賽科技今日宣布與英偉達NVIDIA合作升級,正式入駐其Omniverse生態系統。 據了解,未來汽車廠商及自動駕駛企業的開發者可通過 NVIDIA Drive Sim
    的頭像 發表于 08-02 08:40 ?383次閱讀

    創建端到端零售愿景AI應用程序

    使用 NVIDIA DeepStream 和 NVIDIA TAO 工具包構建端到端零售分析應用程序
    的頭像 發表于 07-05 16:30 ?289次閱讀
    創建端到端零售愿景AI<b class='flag-5'>應用程序</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>