電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Spresense多核質(zhì)數(shù)計(jì)算器開(kāi)源

Spresense多核質(zhì)數(shù)計(jì)算器開(kāi)源

2023-06-13 | zip | 0.00 MB | 次下載 | 免費(fèi)

資料介紹

描述

Spresense 質(zhì)數(shù)計(jì)算器

Spresense 素?cái)?shù)計(jì)算器實(shí)現(xiàn)了一種可以同時(shí)在多個(gè) Spresense CPU 內(nèi)核上運(yùn)行的素?cái)?shù)計(jì)算算法

Spresense CXD5602GG 芯片有六個(gè) ARM Cortex M4 內(nèi)核。在此項(xiàng)目中,您將能夠輕松決定在進(jìn)行素?cái)?shù)計(jì)算時(shí)將使用多少個(gè) CPU 內(nèi)核。測(cè)量計(jì)算所花費(fèi)的時(shí)間,然后與進(jìn)行相同計(jì)算但僅使用一個(gè)內(nèi)核所花費(fèi)的時(shí)間進(jìn)行比較。它是一種基準(zhǔn)應(yīng)用程序,用戶可以在其中進(jìn)行各種設(shè)置并觀察結(jié)果。

Spresense 主板足以完成此項(xiàng)目,但如果將其連接到 Spresense 擴(kuò)展板,則沒(méi)有任何區(qū)別。

先決條件

  • Ubuntu PC(Spresense Full SDK 需要)。

描述

默認(rèn)情況下,Spresense 素?cái)?shù)計(jì)算器將在一組預(yù)定義的參數(shù)上運(yùn)行。

參數(shù)是:

  • 要使用的 CPU 數(shù)量。[1-5] 默認(rèn)值:5。
  • 搜索素?cái)?shù)的數(shù)字范圍。[1-“千”] 默認(rèn)值:15000。

該應(yīng)用程序?qū)⒃诿钚兄兄付ǖ谋M可能多的內(nèi)核上啟動(dòng)并啟動(dòng)素?cái)?shù)計(jì)算器算法的實(shí)例。如果未指定核心數(shù),則將使用默認(rèn)值。

然后每個(gè)實(shí)例都會(huì)收到一條消息,其中包含起始值和要通過(guò)質(zhì)數(shù)計(jì)算器運(yùn)行的范圍長(zhǎng)度。范圍的長(zhǎng)度與數(shù)字范圍相同。這意味著將計(jì)算的總范圍將是number range x number of CPUs 。

結(jié)果是什么意思?

結(jié)果基本上只是一個(gè)數(shù)字,說(shuō)明完成任務(wù)需要多長(zhǎng)時(shí)間。作為參考,這里是為 Arduino UNO 移植的代碼。

劇透警告!在范圍為 0-2000 個(gè)數(shù)字的 Arduino UNO 上進(jìn)行的初始測(cè)試需要 10916 毫秒才能找到 303 個(gè)素?cái)?shù)。在五個(gè)內(nèi)核上運(yùn)行的 Spresense 上的相同范圍需要 9 毫秒,而在一個(gè) Spresense 內(nèi)核上運(yùn)行需要 27 毫秒。

uint32_t find_primes(uint32_t start_val, uint32_t limit) {
 uint32_t primes = 0;
 for (; start_val <= limit; start_val++) {
   int x = 2;
   while (x <= start_val) {
     if (start_val % x == 0)
       break;
     x++;
   }
   if (x == start_val)
     primes++;
 }
 return primes;
}
#define RANGE 5000
void setup() {
 uint32_t primes = 0;
 uint32_t range = RANGE;
 unsigned long start_time, end_time, difference_time;
 // put your setup code here, to run once:
 Serial.begin(115200);
 Serial.print("Starting Prime calculation on Arduino Uno.\nRange from 0 - ");
 Serial.println(range, DEC);
 start_time = millis();
 primes = find_primes(0, RANGE);
 end_time = millis();
 difference_time = end_time - start_time;
 Serial.print("Found: ");
 Serial.print(primes);
 Serial.print(" primes in: ");
 Serial.print(difference_time);
 Serial.println(" ms.");
}
void loop() {
 // put your main code here, to run repeatedly:
}

上圖:Arduino UNO 的代碼。

分步說(shuō)明:

1. 按照先決條件步驟為您的 Ubuntu 計(jì)算機(jī)準(zhǔn)備運(yùn)行 Spresense Full SDK 所需的工具。

2.克隆已經(jīng)實(shí)現(xiàn)素?cái)?shù)計(jì)算器的分叉存儲(chǔ)庫(kù):

$ git clone --recursive git@github.com:TE-KarlKomierowski/spresense.git

3.配置和構(gòu)建Spresense Full SDK:

$ cd spresense/sdk
$ tools/config.py --kernel release
$ tools/config.py examples/prime
$ make buildkernel 
$ make             

4. 構(gòu)建完成后,將在SDK 文件夾中創(chuàng)建一個(gè)名為nuttx.spk的文件。

5. 這個(gè)文件必須燒寫到Spresense板子上。您可以通過(guò)使用“-b”開(kāi)關(guān)編輯波特率來(lái)提高閃爍速度。默認(rèn)值為 115200。如果您嘗試最快的速度并發(fā)現(xiàn)速度不佳,請(qǐng)嘗試降低速度。

$ tools/flash.sh nuttx.spk 
or
#Maximum flashing speed is 1152000, default is 115200.
$ tools/flash.sh -b 1152000 nuttx.spk 

6. 閃爍完成后,使用以下設(shè)置啟動(dòng)您最喜歡的串行終端,只需仔細(xì)檢查設(shè)備是否正確。

+-----------------------------------------------------------------------+
| A -    Serial Device      : /dev/ttyUSB0                              |
| B - Lockfile Location     : /var/lock                                 |
| C -   Callin Program      :                                           |
| D -  Callout Program      :                                           |
| E -    Bps/Par/Bits       : 115200 8N1                                |
| F - Hardware Flow Control : No                                        |
| G - Software Flow Control : No                                        |
|                                                                       |
|    Change which setting?                                              |
+-----------------------------------------------------------------------+ 

7. 你的終端應(yīng)該是這樣的:

NuttShell (NSH) NuttX-7.22
nsh> 

8. 這是 NuttShell。從這里您可以通過(guò)簡(jiǎn)單地輸入“prime”來(lái)啟動(dòng) prime 計(jì)算器。然后素?cái)?shù)計(jì)算器將從默認(rèn)值開(kāi)始。

Synopsis:

prime [N_CPUS] [RANGE]

以下示例將使用 4 個(gè) CPU 內(nèi)核啟動(dòng)應(yīng)用程序,其中每個(gè)內(nèi)核計(jì)算一個(gè)范圍,每個(gè)范圍包含 1000 個(gè)值。

NuttShell (NSH) NuttX-7.22
nsh> prime 4 1000

9. 按回車鍵,看看在不同數(shù)量的核心上運(yùn)行各種范圍長(zhǎng)度時(shí)會(huì)得到什么結(jié)果。

享受!:)

?

?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開(kāi)發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)