chinese腹肌校草洗澡小说_中文无码天天av天天爽_飘雪影院免费版在线观看视频_成全视频高清免费观看在线播放_大地资源中文在线观看官网第二页_军人各种做高h尿在里面_亂伦丰满人妻av怡红院_欧美中字狠狠第一页_小收影院 成人a片产无码免费视频奶头

ARMv8和AArch64硬件架構(gòu)的物聯(lián)網(wǎng)板卡和納米計(jì)算機(jī)并行異構(gòu)計(jì)算

share

本文轉(zhuǎn)載于極術(shù)社區(qū)

極術(shù)專欄:Arm技術(shù)博客作者:ArthurRatz

在物聯(lián)網(wǎng)主板和創(chuàng)新的微型納米計(jì)算機(jī)上,用C++++17和CL和SYCL編程模型規(guī)范構(gòu)建并運(yùn)行現(xiàn)代并行代碼。這些處理器基于革命性的集群對(duì)稱ARMCortex-A72CPU,采用ARMAArch64架構(gòu)。

下面的博客文章提供了用C++17/2x0構(gòu)建現(xiàn)代并行代碼的實(shí)用指南、技巧和教程。它們使用CL/SYCL編程模型實(shí)施,并在基于創(chuàng)新的ARMCortex-A72、四核64位RISCCPU的下一代物聯(lián)網(wǎng)主板上運(yùn)行。

讀者可以在AkselAlpay的hiSYCL庫項(xiàng)目的開放源碼發(fā)行版中找到用C++17編寫的并行代碼。另外,關(guān)于安裝和配置LLVM和Clang-9.x.xARMAArch64-工具鏈,用于構(gòu)建并行代碼可執(zhí)行文件并在功能強(qiáng)大的ARMCortex-A72CPU(采用ARMAArch64架構(gòu))上運(yùn)行它。這篇博客文章主要關(guān)注在最新的RaspberryPI4B+板上構(gòu)建和運(yùn)行特定的并行代碼可執(zhí)行文件,這些板基于BroadcomBCM2711SoC芯片,專為嵌入式系統(tǒng)和物聯(lián)網(wǎng)而設(shè)計(jì)

ARMCortex-A72CPU的樹莓PI4B+物聯(lián)網(wǎng)主板

2016年,ARM宣布發(fā)布革命性的新對(duì)稱Cortex-A72CPU,配備64位ARMv8-這是一種硬件架構(gòu),完全支持大規(guī)模并行計(jì)算。這是物聯(lián)網(wǎng)電路板和微型納米計(jì)算機(jī)的下一個(gè)巨大時(shí)代,包括覆盆子PI4B+電路板。它們是為實(shí)時(shí)大規(guī)模收集和處理數(shù)據(jù)而設(shè)計(jì)的,作為嵌入式系統(tǒng)和物聯(lián)網(wǎng)集群最重要的組成部分。

ARMCortex-A72CPU以1.8Ghz時(shí)鐘頻率和最新的LPDDR4-3200MhzRAM運(yùn)行。根據(jù)SoC芯片和物聯(lián)網(wǎng)主板型號(hào)的不同,它們的容量高達(dá)8GB。它們滿足了從事高性能嵌入式系統(tǒng)和物聯(lián)網(wǎng)集群設(shè)計(jì)的軟件開發(fā)人員和系統(tǒng)工程師的期望。此外,針對(duì)特定的CPU型號(hào)和版本,Cortex-A72CPU具有革命性的高二級(jí)緩存容量,從512KiB到4MiB不等。

使用ARMCortex-A72的一個(gè)例子是Broadcom和RaspberryPi基礎(chǔ)供應(yīng)商制造創(chuàng)新的BCM2711SoC芯片和RaspberryPi4B+IoT板。

RaspberryPi板以“可靠”和“快速”的微型納米計(jì)算機(jī)而聞名,這種微型計(jì)算機(jī)是專門為數(shù)據(jù)挖掘和并行計(jì)算而設(shè)計(jì)的。ARM集群對(duì)稱64位RISC-CPU的主要新硬件架構(gòu)特性(如DSP、SIMD、VFPv4和硬件虛擬化支持)顯著提高了使用RaspberryPI進(jìn)行大規(guī)模并行數(shù)據(jù)處理的性能、加速和可擴(kuò)展性。

具體來說,基于ARMCortex-A72CPU和4GiB或更高內(nèi)存的樹莓PI是最適合物聯(lián)網(wǎng)數(shù)據(jù)挖掘和并行計(jì)算的解決方案。此外,BCM2711B0SoC芯片還捆綁了各種集成設(shè)備和外圍設(shè)備,如BroadcomVideoCoreVI@500MHzGPU、PCI-Ex千兆位以太網(wǎng)適配器等。

我們使用物聯(lián)網(wǎng)進(jìn)行并行計(jì)算所需要的只是一個(gè)RaspberryPI4B+?;蛘?,任何其他基于ARMCortex-A72CPU和LPDDR4系統(tǒng)內(nèi)存制造SoC芯片的物聯(lián)網(wǎng)主板。

我們將演示如何設(shè)置一塊樹莓PI4B+電路板用于首次使用,開箱即用。

以下是預(yù)先滿足的硬件和軟件要求的簡(jiǎn)短核對(duì)表。

硬件:

RaspberryPI4型號(hào)B0,4GB物聯(lián)網(wǎng)電路板。用于Raspbian操作系統(tǒng)和數(shù)據(jù)存儲(chǔ)的16GBMicro-SD卡。直流電源:5.0V/2-3A,帶USBC類連接器(最低3A-用于數(shù)據(jù)挖掘和并行計(jì)算)。

軟件:

RaspbianBuster10.6.0完整操作系統(tǒng)。Raspbian成像器1.4。MobaXTerm20.3內(nèi)部版本4396或任何其他SSH客戶端

設(shè)置RaspberryPi4B物聯(lián)網(wǎng)板

在開始之前,我們必須從官方RaspberryPi存儲(chǔ)庫下載最新版本的RaspbianBuster10.6.0完整OS映像。我們還需要下載并使用適用于各種平臺(tái)(例如Windows,Linux或macOS)的RaspbianImager1.4應(yīng)用程序。

RaspbianBuster10.6.0 http://downloads.raspberrypi.org/raspbian_full/images/raspbian_full-2020-02-14/ RaspbianImager1.4 http://downloads.raspberrypi.org/imager/ 另外,我們還必須下載并安裝MobaXterm應(yīng)用程序,以通過SSH或FTP協(xié)議遠(yuǎn)程建立與RaspberryPi板的連接: MobaXterm20.3 https://mobaxterm.mobatek.net/download.html 由于已經(jīng)成功下載并安裝了RaspbianBusterOS和Imager應(yīng)用程序,因此我們正在使用Imager應(yīng)用程序執(zhí)行以下操作:

默認(rèn)情況下,擦除SD卡,將其格式化為FAT32文件系統(tǒng)

將預(yù)安裝的RaspbianBusterOS映像(*.img)提取到SD卡中

由于成功完成了前面的步驟,因此請(qǐng)從讀卡器中取出SD卡,然后將其插入RaspberryPi板的SD卡插槽中。然后,連接微型HDMI和以太網(wǎng)電纜。最后,插入直流電源電纜的連接器,然后打開電路板。最后,系統(tǒng)在安裝到SD卡的RaspbianBusterOS引導(dǎo)下啟動(dòng),提示執(zhí)行多個(gè)安裝后步驟以對(duì)其進(jìn)行首次配置。

由于電路板上電,因此請(qǐng)確保完成以下所有安裝后步驟:打開bash控制臺(tái)并設(shè)置“root”密碼 pi@raspberrypi4:~$sudopasswdroot 以“root”權(quán)限登錄到Raspbianbash控制臺(tái) pi@raspberrypi4:~$sudo-s 使用以下命令升級(jí)Raspbian的Linux基本系統(tǒng)和固件 root@raspberrypi4:~#sudoaptupdateroot@raspberrypi4:~#sudoaptfull-upgraderoot@raspberrypi4:~#sudorpi-update 第一次重新啟動(dòng)系統(tǒng) root@raspberrypi4:~#sudoshutdown-rnow 安裝最新的Raspbian的引導(dǎo)程序并再次重新引導(dǎo)系統(tǒng) root@raspberrypi4:~#sudorpi-eeprom-update-d-aroot@raspberrypi4:~#sudoshutdown-rnow 啟動(dòng)“raspi-config”設(shè)置工具 root@raspberrypi4:~#sudoraspi-config 使用“raspi-config”工具完成以下步驟 更新'raspi-config'工具: *在啟動(dòng)時(shí)禁用Raspbian的桌面GUI:系統(tǒng)選項(xiàng)>>引導(dǎo)/自動(dòng)登錄>>控制臺(tái)自動(dòng)登錄:*擴(kuò)展SD卡上的根“/”分區(qū)大小:執(zhí)行Raspbian安裝后配置后,最后重新啟動(dòng)系統(tǒng)。重新啟動(dòng)后,將提示您登錄。使用先前設(shè)置的“root”用戶名和密碼,以root用戶權(quán)限登錄到bash控制臺(tái)。既然您已經(jīng)成功登錄,請(qǐng)?jiān)赽ash-console中使用以下命令從APT存儲(chǔ)庫安裝許多軟件包: root@raspberrypi4:~#sudoapTInstall-ynet-toolsopenssh-server 這兩個(gè)軟件包是配置RaspberryPi的網(wǎng)絡(luò)接口或OpenSSH服務(wù)器所必需的,以便使用MobaXterm通過SSH協(xié)議遠(yuǎn)程連接到開發(fā)板。通過修改/etc/network/interfaces來配置板的網(wǎng)絡(luò)接口'eth0',例如:autoeth0ifaceeth0inetstaTIcaddress192.168.87.100netmask255.255.255.0broadcast192.168.87.255gateway192.168.87.254nameserver192.168.87.254 在網(wǎng)絡(luò)接口旁邊,通過取消注釋/etc/ssh/sshd_config中的以下行來執(zhí)行OpenSSH服務(wù)器的基本配置: PermitRootLoginyesStrictModesnoPasswordAuthenTIcaTIonyesPermitEmptyPasswordsyes 這樣就可以使用SSH協(xié)議以root身份登錄到bash控制臺(tái),而無需輸入密碼。最后,嘗試使用MobaXterm應(yīng)用程序通過網(wǎng)絡(luò)連接板,并打開到IP地址為192.168.87.100的主機(jī)的遠(yuǎn)程SSH會(huì)話。您還必須能夠使用先前設(shè)置的憑據(jù)成功登錄Raspbian的bash控制臺(tái)。 使用CL/SYCL模型在C++17中開發(fā)并行代碼 2020年,Khronos集團(tuán)宣布了革命性的新型異構(gòu)異構(gòu)計(jì)算平臺(tái)(XPU)。這提供了將“繁重”數(shù)據(jù)處理工作負(fù)載的執(zhí)行卸載到僅主機(jī)CPU以外的大量硬件加速目標(biāo)(例如GPGPU或FPGA)的能力。從概念上講,使用XPU平臺(tái)進(jìn)行的并行代碼開發(fā)完全基于KhronosCL/SYCL編程模型規(guī)范,該規(guī)范是OpenCL2.0庫的抽象層。這是一個(gè)小示例,說明了使用CL/SYCL模型抽象層實(shí)現(xiàn)的C++17代碼。 #includeusingnamespacecl::sycl;constexprstd::uint32_tN=1000;cl::queueq{};q.submit([&](cl::handler&cgh){cgh.parallel_for(cl::range{N},[=](cl::ididx){//Dosomeworkinparallel});});q.wait(); C++17中的代碼片段(如前面所示)完全基于CL/SYCL編程模型進(jìn)行交付。它使用默認(rèn)參數(shù)初始化器列表實(shí)例化一個(gè)cl::sycl::Queue{}對(duì)象。這是為了將SYCL內(nèi)核提交給默認(rèn)使用的主機(jī)CPU加速目標(biāo)來執(zhí)行。接下來,它調(diào)用cl::sycl::Submit(...)。只有一個(gè)參數(shù)的cl::sycl::Handler{}對(duì)象的方法,用于訪問提供基本內(nèi)核功能的方法。這基于各種并行算法,包括CL::SYCL::HANDLER::PARALLEL_FOR(...)。方法。以下方法用于實(shí)現(xiàn)從運(yùn)行中的內(nèi)核中產(chǎn)生的緊密并行循環(huán)。此循環(huán)的每個(gè)迭代都由其自己的線程并行執(zhí)行。CL::SyCL::Handler::PARALLEL_FOR(...)。接受cl::sycl::range{}對(duì)象的兩個(gè)主要參數(shù)和在每次循環(huán)迭代期間調(diào)用的特定lamda函數(shù)。Cl::sycl::range{}對(duì)象基本上定義了正在執(zhí)行的并行循環(huán)迭代的數(shù)量。對(duì)于每個(gè)特定維度,在折疊多個(gè)嵌套循環(huán)和處理多維數(shù)據(jù)的情況下。在上面的代碼中,cl::sycl::range(N)對(duì)象用于在一個(gè)維度中調(diào)度并行循環(huán)的N次迭代。PARALLEL_FOR(...)的lambda函數(shù)。方法接受另一個(gè)cl::sycl::id{}對(duì)象的單個(gè)參數(shù)。除了cl::sycl::range{},該對(duì)象還實(shí)現(xiàn)了一個(gè)向量容器,每個(gè)元素都是并行循環(huán)的每個(gè)維度和每次迭代的索引值。以下對(duì)象作為參數(shù)傳遞給lamda函數(shù)作用域中的代碼,用于檢索特定索引值。Lamda函數(shù)的主體包含并行執(zhí)行某些數(shù)據(jù)處理的代碼。在將特定內(nèi)核提交到隊(duì)列并生成以供執(zhí)行之后,以下代碼將調(diào)用不帶參數(shù)的cl::sycl::Wait()方法來設(shè)置屏障同步。這確保在被派生的內(nèi)核完成其并行工作之前不會(huì)執(zhí)行任何代碼。CL/SYCL異構(gòu)編程模型效率高,具有廣泛的應(yīng)用前景。然而,英特爾公司和Codeplay軟件公司很快就不再支持CL/SYCL對(duì)硬件架構(gòu)的支持,而不是“本機(jī)”x86_64。這使得不可能使用特定的CL/SYCL庫、針對(duì)ARM/Aarch64和其他體系結(jié)構(gòu)來交付并行C++代碼。目前,有許多CL/SYCL開源庫項(xiàng)目,由廣大開發(fā)人員和愛好者開發(fā)。它們支持更多硬件體系結(jié)構(gòu),而不僅僅是x86_64。2019年,德國海德堡大學(xué)AkselAlpay實(shí)施了最新的CL/SYCL編程模型層規(guī)格庫。它針對(duì)的是硬件架構(gòu),包括RaspberryPi的ARM和AArch64架構(gòu)。它向GitHub(https://github.com/illuhad/hipSYCL).)%E8%B4%A1%E7%8C%AE%E4%BA%86hiSYCL%E5%BC%80%E6%BA%90%E5%BA%93%E9%A1%B9%E7%9B%AE%E5%8F%91%E8%A1%8C%E7%89%88)此外,我們還討論了如何安裝和配置LLVM/Clang-9.x.x編譯器、工具鏈和hiSYCL庫發(fā)行版。這是在使用該庫的基礎(chǔ)上,用C++17交付現(xiàn)代并行代碼。 安裝和配置LLVM/Clang-9.xx 在使用AkselAlpay的hipSYCL庫項(xiàng)目的發(fā)行版之前,必須正確安裝和配置特定的LLVM/Clang-9.xx編譯器和Arm/AArch64工具鏈。為此,請(qǐng)確保您已完成以下步驟。1.更新Raspbian的APT存儲(chǔ)庫并安裝以下必備軟件包: root@raspberrypi4:~#sudoaptupdateroot@raspberrypi4:~#sudoaptinstall-ybisonflexpythonpython3snapsnapdgitwget 前面的命令將安裝備用的“快照”軟件包管理器。這是安裝正確版本的cmake>=3.18.0實(shí)用程序以及'python','python3'發(fā)行版和'bison','flex'實(shí)用程序所必需的。通過使用'cmake'實(shí)用程序,從頭開始構(gòu)建hipSYCL開源項(xiàng)目需要所有這些。2.使用'snap'軟件包管理器安裝'cmake'>=3.18.0實(shí)用程序和LLVM/Clang守護(hù)程序: root@raspberrypi4:~#sudosnapinstallcmake--classicroot@raspberrypi4:~#sudosnapinstallclangd--classic 安裝'cmake'實(shí)用程序后,讓我們使用以下命令檢查它是否有效,并且已經(jīng)從'snap'存儲(chǔ)庫中安裝了正確的版本: root@raspberrypi4:~#sudocmake--version 運(yùn)行此命令后,您必須看到以下輸出: cmakeversion3.18.4CMakesuitemaintainedandsupportedbyKitware(kitware.com/cmake). 3.為L(zhǎng)LVM/Clang工具鏈安裝最新的Boost,POSIX-Threads和C/C++標(biāo)準(zhǔn)運(yùn)行時(shí)庫: root@raspberrypi4:~#sudoaptinstall-ylibc++-devlibc++1libc++abi-devlibc++abi1libpthread-stubs0-devlibpthread-workqueue-devroot@raspberrypi4:~#sudoaptinstall-yclang-formatclang-tidyclang-toolsclanglibc++-devlibc++1libc++abi-devlibc++abi1libclang-devlibclang1liblldb-devlibllvm-ocaml-devlibomp-devlibomp5lldlldbllvm-devllvm-runtimellvmpython-clanglibboost-all-dev 4.下載并添加LLVM/Clang的APT存儲(chǔ)庫安全密鑰: root@raspberrypi4:~#wget-O–https://apt.llvm.org/llvm-snapshot.gpg.key|sudoapt-keyadd– 5.將LLVM/Clang的存儲(chǔ)庫URL附加到APT的源列表中: root@raspberrypi4:~#echo?debhttp://apt.llvm.org/buster/llvm-toolchain-bustermain?>>/etc/apt/sources.list.d/raspi.listroot@raspberrypi4:~#echo?deb-srchttp://apt.llvm.org/buster/llvm-toolchain-bustermain?>>/etc/apt/sources.list.d/raspi.list 為了能夠從特定的APT存儲(chǔ)庫安裝LLVM/Clang-9.xx編譯器和特定的工具鏈,必須完成上述兩個(gè)步驟4和5。6.刪除到已安裝的LLVM/Clang早期版本的現(xiàn)有符號(hào)鏈接: root@raspberrypi4:~#cd/usr/bin&&rm-fclangclang++ 7.再次更新APT存儲(chǔ)庫,并安裝LLVM/Clang的編譯器,調(diào)試器和鏈接器: root@raspberrypi4:~#sudoaptupdateroot@raspberrypi4:~#sudoaptinstall-yclang-9lldb-9lld-9 8.創(chuàng)建到已安裝的'clang-9'和'clang++-9'編譯器的相應(yīng)符號(hào)鏈接: root@raspberrypi4:~#cd/usr/bin&&ln-sclang-9clangroot@raspberrypi4:~#cd/usr/bin&&ln-sclang++-9clang++ 9.最后,您必須具備在bash控制臺(tái)中使用'clang'和'clang++'命令的能力: root@raspberrypi4:~#clang–version&&clang++--version 在這里,讓我們使用前面的命令檢查已安裝的LLVM/Clang版本。使用命令后,必須看到以下輸出: clangversion9.0.1-6+rpi1~bpo10+1Target:armv6k-unknown-linux-gnueabihfThreadmodel:posixInstalledDir:/usr/binclangversion9.0.1-6+rpi1~bpo10+1Target:armv6k-unknown-linux-gnueabihfThreadmodel:posixInstalledDir:/usr/bin 下載并構(gòu)建hipSYCL庫發(fā)行版 另一個(gè)必不可少的步驟是從其源代碼下載并構(gòu)建開放源代碼的hipSYCL庫分段發(fā)布,這對(duì)GitHub有所貢獻(xiàn)。通常通過完成以下步驟來完成:1.下載hipSYCL項(xiàng)目的發(fā)行版,從GitHub克隆它: root@raspberrypi4:~#gitclonehttps://github.com/llvm/llvm-projectllvm-projectroot@raspberrypi4:~#gitclone--recurse-submoduleshttps://github.com/illuhad/hipSYCL AkselAlpay的hipSYCL項(xiàng)目的發(fā)行版與另一個(gè)LLVM/Clang的開源項(xiàng)目有多個(gè)依賴關(guān)系。這就是為什么,我們通常需要克隆這兩個(gè)發(fā)行版,以便從頭開始構(gòu)建hipSYCL庫運(yùn)行時(shí)。2.通過使用'export'和'env'命令設(shè)置從源代碼構(gòu)建hipSYCL項(xiàng)目所需的環(huán)境變量的數(shù)量,并將以下特定行附加到.bashrc配置文件腳本中: exportLLVM_INSTALL_PREFIX=/usrexportLLVM_DIR=~/llvm-project/llvmexportCLANG_EXECUTABLE_PATH=/usr/bin/clang++exportCLANG_INCLUDE_PATH=$LLVM_INSTALL_PREFIX/include/clang/9.0.1/includeecho"exportLLVM_INSTALL_PREFIX=/usr">>/root/.bashrcecho"exportLLVM_DIR=~/llvm-project/llvm">>/root/.bashrcecho"exportCLANG_EXECUTABLE_PATH=/usr/bin/clang++">>/root/.bashrcecho"exportCLANG_INCLUDE_PATH=$LLVM_INSTALL_PREFIX/include/clang/9.0.1/include">>/root/.bashrcenvLLVM_INSTALL_PREFIX=/usrenvLLVM_DIR=~/llvm-project/llvmenvCLANG_EXECUTABLE_PATH=/usr/bin/clang++envCLANG_INCLUDE_PATH=$LLVM_INSTALL_PREFIX/include/clang/9.0.1/include 3.創(chuàng)建并更改為hipSYCL項(xiàng)目主目錄下的?/hipSYCL/build子目錄: root@raspberrypi4:~#mkdir~/hipSYCL/build&&cd~/hipSYCL/build 4.使用'cmake'實(shí)用程序配置hipSYCL項(xiàng)目的源: root@raspberrypi4:~#cmake-DCMAKE_INSTALL_PREFIX=/opt/hipSYCL.. 5.使用GNU的“make”命令構(gòu)建并安裝hipSYCL運(yùn)行時(shí)庫: root@raspberrypi4:~#make-j$(nproc)&&makeinstall-j$(nproc) 6.將libhipSYCL-rt.iso運(yùn)行時(shí)庫復(fù)制到Raspbian的默認(rèn)庫位置: root@raspberrypi4:~#cp/opt/hipSYCL/lib/libhipSYCL-rt.so/usr/lib/libhipSYCL-rt.so 7.設(shè)置環(huán)境變量,這是使用hipSYCL運(yùn)行時(shí)庫和LLVM/Clang編譯器生成源代碼所必需的: exportPATH=$PATH:/opt/hipSYCL/binexportC_INCLUDE_PATH=$C_INCLUDE_PATH:/opt/hipSYCL/includeexportCPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/opt/hipSYCL/includeexportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/hipSYCL/libecho"exportPATH=$PATH:/opt/hipSYCL/bin">>/root/.bashrcecho"exportC_INCLUDE_PATH=$C_INCLUDE_PATH:/opt/hipSYCL/include">>/root/.bashrcecho"exportCPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/opt/hipSYCL/include">>/root/.bashrcecho"exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/hipSYCL/lib">>/root/.bashrcenvPATH=$PATH:/opt/hipSYCL/binenvC_INCLUDE_PATH=$C_INCLUDE_PATH:/opt/hipSYCL/includeenvCPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/opt/hipSYCL/includeenvLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/hipSYCL/lib 在RaspberryPi4B+上的C++17中運(yùn)行并行CL/SYCL代碼 最后,我們終于完成了安裝和配置LLVM/Clang和hipSYCL庫的準(zhǔn)備。強(qiáng)烈建議構(gòu)建并運(yùn)行“matmul_hipsycl”示例的可執(zhí)行文件,并確保一切工作正常:這是從來源構(gòu)建以下樣本的最常用步驟: rm-rf~/sourcesmkdir~/sources&&cd~/sourcescp~/matmul_hipsycl.tar.gz~/sources/matmul_hipsycl.tar.gztar-xvfmatmul_hipsycl.tar.gzrm-fmatmul_hipsycl.tar.gz 一組先前的命令將創(chuàng)建?/source子目錄,并從matmul_hipsycl.tar.gz實(shí)現(xiàn)中提取示例的源。要構(gòu)建示例的可執(zhí)行文件,只需使用GNU的“make”命令: root@raspberrypi4:~#makeall 這將調(diào)用“clang++”命令來生成可執(zhí)行文件: syclcc-clang-O3-std=c++17-omatrix_mul_rpi4src/matrix_mul_rpi4b.cpp-lstdc++ 此命令啟用最高級(jí)別的代碼優(yōu)化(例如,-O3)來編譯特定的C++17代碼,并將其與C++標(biāo)準(zhǔn)庫運(yùn)行時(shí)鏈接。注意:除了庫運(yùn)行時(shí)以外,構(gòu)建的hipSYCL項(xiàng)目還提供了“syclcc”和“syclcc-clang”工具。它們用于在C++17中構(gòu)建并行代碼,并使用hipSYCL庫實(shí)現(xiàn)。這些工具的使用與“clang”和“clang++”命令的常規(guī)用法略有不同。但是,仍可以使用“syclcc”和“syclcc-clang”,并指定與原始“clang”和“clang++”命令相同的編譯器和鏈接器選項(xiàng)。使用這些工具執(zhí)行編譯之后,使用以下命令將執(zhí)行權(quán)限授予由編譯器生成的“matrix_mul_rpi4”文件: root@raspberrypi4:~#chmod+rwxmatrix_mul_rpi4 在bash控制臺(tái)中運(yùn)行可執(zhí)行文件: root@raspberrypi4:~#./matrix_mul_rpi4 運(yùn)行它之后,執(zhí)行將以以下輸出結(jié)束: ***************************************MultiplicationC=AxB:MatrixC:323445243343363316495382463374322329328388378395392432470326398357337366386407478457520374543531382470555520602534639505294388277314278330430319396372447445433485524505604535628509445468349432511391552449534470434454339417502455533498588444470340416364401396485417496464431421325325272331420385419468Executiontime:5ms (可選)我們可以通過安裝和使用以下實(shí)用程序來評(píng)估并行代碼的性能: root@raspberrypi4:~#sudoaptinstall-ytophtop 在運(yùn)行并行代碼可執(zhí)行文件時(shí),已安裝的“htop”實(shí)用程序的使用可直觀顯示CPU和系統(tǒng)內(nèi)存的使用情況: 概要 微型FPGA,以及具有計(jì)算能力的袖珍GPGPU,通過GPIO或USB接口從外部連接到物聯(lián)網(wǎng)主板,是物聯(lián)網(wǎng)并行計(jì)算的下一步。微型FPGA和GPGPU的使用為執(zhí)行更復(fù)雜、更“繁重”的計(jì)算提供了機(jī)會(huì)。同時(shí),大幅提高實(shí)際性能加速,同時(shí)實(shí)時(shí)處理海量大數(shù)據(jù)。顯然,物聯(lián)網(wǎng)并行計(jì)算的另一個(gè)重要方面是繼續(xù)開發(fā)特定的庫和框架,提供CL/SYCL模型層規(guī)范和異構(gòu)計(jì)算平臺(tái)(XPU)支持。目前,這些庫的最新版本支持將并行代碼執(zhí)行卸載到主機(jī)CPU加速目標(biāo)。其他加速硬件,如用于納米計(jì)算機(jī)的小型GPGPU和FPGA,目前還沒有由其供應(yīng)商設(shè)計(jì)和制造。事實(shí)上,RaspberryPi和其他特定物聯(lián)網(wǎng)主板的并行計(jì)算都是基于ARMCortex-A72集群,64位。在與物聯(lián)網(wǎng)并行運(yùn)行的同時(shí),軟件開發(fā)人員和硬件技術(shù)人員對(duì)對(duì)現(xiàn)有計(jì)算過程進(jìn)行性能評(píng)估的RISCCPU很感興趣??傊?,應(yīng)用基于物聯(lián)網(wǎng)的并行計(jì)算通常會(huì)提高基于云的解決方案的整體性能。這些設(shè)備旨在實(shí)時(shí)收集和大規(guī)模處理大數(shù)據(jù)。其結(jié)果是,對(duì)機(jī)器學(xué)習(xí)(ML)和數(shù)據(jù)分析本身的質(zhì)量產(chǎn)生了積極影響。

原文標(biāo)題:基于ARMv8和AArch64硬件架構(gòu)的物聯(lián)網(wǎng)板卡和納米計(jì)算機(jī)并行異構(gòu)計(jì)算

文章出處:【微信公眾號(hào):安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

share