吴忠躺衫网络科技有限公司

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

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

3天內不再提示

英創信息技術ESM6802( iMX6-WEC7)多核性能測試

英創信息技術 ? 來源:英創信息技術 ? 作者:英創信息技術 ? 2020-02-05 11:08 ? 次閱讀

ESM6802是英創公司推出的基于Freescale i.MX6DL雙核處理器(ARM Cortex-A9,主頻1GHz)的高性能工控主板,預裝正版Windows Embedded Compact 7(WEC7)嵌入式操作系統,WEC7一個最重要的特性就是對多核處理器的支持(Symmetric Multi-Processing(SMP)),下面將通過應用程序來測試在單核和多核情況下系統的執行情況,為了更直觀的比較,同時參與測試的還有ESM3354,ESM3354是基于TI Coertex-A8處理器的工控主板,CPU主頻1GHz,同樣預裝WEC7操作系統。

所設計的測試程序代碼如下,其中的TestSmp函數有兩個輸入參數,第一參數表示要創建測試線程的數量,第二個參數為所創建線程的運行時長。cbTestSmp是被創建的測試線程,測試線程主要是在一個while循環中,反復讀取內存變量然后與預設值進行比較,在運行設定的時間后自動退出循環,其中的threadParam->loops變量會記錄下while循環總共執行的次數。

typedefstruct_SMP_THREAD_PARAM

{

UINT32 durationMs;

UINT32 threadId;

UINT64 loops;

BOOL bSetAffinity;

UINT32 sandBoxSize;

LPVOID sandBoxStart;

}SMP_THREAD_PARAM, *PSMP_THREAD_PARAM;

ULONGcbTestSmp(LPVOID param)

{

PSMP_THREAD_PARAM threadParam = (PSMP_THREAD_PARAM)param;

DWORD tStart = GetTickCount();

UINT8 *buffer = (UINT8 *)threadParam->sandBoxStart;

wprintf(L"Ahou, Thread %d, running for %d ms\r\n", threadParam->threadId,

threadParam->durationMs);

// Write to sandbox

for(UINT32 i = 0; i < threadParam->sandBoxSize; i++)

{

buffer[i] = (UINT8)(i);

}

while( (GetTickCount() - tStart) < threadParam->durationMs)

{

// Read back from sandbox

for(UINT32 i = 0; i < threadParam->sandBoxSize; i++)

{

if(buffer[i] != (UINT8)(i))

{

wprintf(L"Thread %d : error at byte %d for loop %I64d !!\r\n",

threadParam->threadId, i, threadParam->loops);

}

}

threadParam->loops++;

}

wprintf(L"Thread %d : terminating\r\n", threadParam->threadId);

return0;

}

voidTestSmp(UINT32 nNumOfThread, UINT32 durationMs)

{

UINT32 i;

PSMP_THREAD_PARAM threadParams;

HANDLE *threadHandles;

UINT64 totalLoops = 0;

UINT32 sandBoxSize = 1024 * 128; // 128 kB

HANDLE h_array[1];

threadParams = (PSMP_THREAD_PARAM)malloc(nNumOfThread *sizeof(SMP_THREAD_PARAM));

if(threadParams == NULL)

{

wprintf(L"Failed allocating thread params !\r\n");

return;

}

threadHandles = (HANDLE *)malloc(nNumOfThread *sizeof(HANDLE));

if(threadHandles == NULL)

{

wprintf(L"Failed allocating thread handles !\r\n");

return;

}

for(i = 0; i < nNumOfThread; i++)

{

threadParams[i].bSetAffinity = TRUE;

threadParams[i].threadId = i;

threadParams[i].durationMs = durationMs;

threadParams[i].loops = 0;

threadParams[i].sandBoxSize = sandBoxSize;

threadParams[i].sandBoxStart = malloc(sandBoxSize);

threadHandles[i] = CreateThread(NULL, 0, cbTestSmp, &threadParams[i], 0, NULL);

wprintf(L"Thread handle %d : 0x%x\r\n", i, threadHandles[i]);

}

h_array[0] = threadHandles[0];

DWORD res = WaitForSingleObject(h_array[0], INFINITE);

Sleep(500);

if(res == WAIT_TIMEOUT)

{

wprintf(L"Timeout waiting for threads !\r\n");

}

else

{

wprintf(L"All threads exited\r\n");

}

for(i = 0; i < nNumOfThread; i++)

{

wprintf(L"Thread %d did run %I64d loops\r\n", i, threadParams[i].loops);

totalLoops += threadParams[i].loops;

free(threadParams[i].sandBoxStart);

CloseHandle(threadHandles[i]);

}

wprintf(L"Total number of loops %I64d (%I64d millions)\r\n", totalLoops,

totalLoops / 1000000);

free(threadHandles);

free(threadParams);

}

將上述測試代碼編譯生成為exe文件,分別在ESM3354和ESM6802上運行,設置while循環的執行時間均為10000ms,測試結果如下:

1、創建單個線程

測試主板與線程 ESM3354(1GHz單核 Cortex-A8) ESM6802(1GHz雙核Cortex-A9)
循環次數 6791 7493

當測試程序只創建一個測試線程時,ESM3354的while循環執行了6791次,ESM6802執行7493次,雖然ESM6802為雙核處理器,但由于程序只有一個線程,即同一時刻只有一個線程在運行,所以在相同的時間內,循環的次數僅略多于ESM3354。由于ESM3354和ESM6802的CPU主頻同樣都是1GHz,所以可以認為ESM6802多出的循環次數也就是Cortex-A8與Cortex-A9在代碼執行效率上的差別。

2、創建兩個線程

測試主板與線程 ESM3354(1GHz單核 Cortex-A8) ESM6802(1GHz雙核Cortex-A9)
線程1循環次數 3390 7438
線程2循環次數 3442 7452
總循環次數 6832 14890

當測試程序創建了兩個線程時,ESM3354會將CPU資源大約平均的分配給兩個線程,如上表中線程1執行了3390次,線程2執行了3442次,兩個線程總共執行的次數與只創建單個線程測試時的循環次數相當。ESM6802為雙核CPU,在測試程序有兩個線程的情況下,在同一時刻兩個線程可以同時運行,所以總的循環次數大約是單個線程測試時的兩倍。

通過上面的測試可以看到,在多線程情況下,如果操作系統支持多核處理器,那么雙核CPU的運算能力將是單核CPU的兩倍。

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

    關注

    4

    文章

    3569

    瀏覽量

    89301
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6086

    瀏覽量

    35613
收藏 人收藏

    評論

    相關推薦

    龍芯中科榮獲2024年度信息技術應用創新工作委員會卓越貢獻成員單位

    近日,中國電子工業標準化技術協會信息技術應用創新工作委員會(以下簡稱“信工委會”)在北京召開2024年度工作總結座談會暨信“大比武”總結大會。中國工程院院士、信
    的頭像 發表于 01-23 10:50 ?165次閱讀

    芯盛智能榮獲2024年信息技術應用創新工作委員會卓越貢獻成員單位

    日前,中國電子工業標準化技術協會信息技術應用創新工作委員會(以下簡稱 “信工委會”)2024 年度總結座談會于北京隆重舉行。此次會議對在信工作中作出突出貢獻的成員單位予以表彰。江蘇
    的頭像 發表于 01-20 09:56 ?157次閱讀

    飛騰助力首屆教育信息技術應用創新大賽圓滿落幕

    近日,由中國教育技術協會主辦,教育部教育管理信息中心教育信實驗室、公安部第三研究所、中國電子工業標準化技術協會信工委會支持,北京航空航天
    的頭像 發表于 12-24 09:57 ?205次閱讀

    有方科技參編的信息技術團體標準發布

    近日,有方科技參編的《信息技術產品供應鏈成熟度 共性指標 第1部分:企業背景評價》《信息技術產品供應鏈成熟度 共性指標 第2部分:技術掌控評價》《信息技術產品供應鏈成熟度 共性指標 第
    的頭像 發表于 12-23 10:44 ?225次閱讀

    龍芯中科助力2024首屆教育信息技術應用創新大賽成功舉辦

    近日,2024首屆教育信息技術應用創新大賽在北京航空航天大學成功舉辦。本次大賽由中國教育技術協會主辦,教育信實驗室、公安部第三研究所、中國電子工業標準化技術協會信
    的頭像 發表于 12-19 17:02 ?282次閱讀

    中科達榮獲2024年軟件和信息技術服務優秀企業

    及前百家企業”名單。中科達憑借非凡的技術實力與持續的創新能力,成功入選“2024年度軟件和信息技術服務競爭力百強企業”以及“2024年軟件和信息技術服務優秀企業”。
    的頭像 發表于 10-30 11:44 ?557次閱讀

    國產化背景下的工控主板發展現狀

    ,是信息技術應用創新產業的簡稱,于2016年“信工委會”(信息技術應用創新工作委員會)提出,目的就是要推動我們國內軟硬件關鍵技術的研發
    的頭像 發表于 09-21 16:15 ?508次閱讀

    梯度科技入選2023年信息技術應用創新解決方案名單

    日前,工業和信息化部網絡安全產業發展中心(工業和信息化部信息中心)在天津舉辦2024信息技術應用創新發展大會暨解決方案應用推廣大會。會上正式公布了2023年
    的頭像 發表于 09-09 16:29 ?492次閱讀

    CPU單核性能多核性能的區別

    CPU的單核性能多核性能在多個方面存在顯著的差異,這些差異主要體現在處理能力、應用場景、性能瓶頸以及技術發展等方面。以下是對兩者區別的詳細
    的頭像 發表于 09-02 14:42 ?8259次閱讀

    集芯IP6802:至為芯設計的一站式無線充電soc解決方案應用芯片

    設計的無線充電解決方案采用了集芯的IP6802。作為該方案的核心部件,IP6802不僅擁有高效的無線充電功能,還具備了靈活的定制能力,能夠根據客戶的需求進行個性
    的頭像 發表于 08-02 16:40 ?510次閱讀
    <b class='flag-5'>英</b>集芯IP<b class='flag-5'>6802</b>:至為芯設計的一站式無線充電soc解決方案應用芯片

    IPv6 在信產業中的發展歷程

    隨著信息技術的飛速發展,信產業作為國家信息安全和科技自主創新的重要領域,正日益受到廣泛關注。在信產業的發展過程中,IPv6扮演著至關重要
    的頭像 發表于 06-17 14:46 ?444次閱讀
    IPv<b class='flag-5'>6</b> 在信<b class='flag-5'>創</b>產業中的發展歷程

    深圳比達EMC|EMI電磁干擾:電子設備性能的頭號敵人.

    深圳比達EMC|EMI電磁干擾:電子設備性能的頭號敵人在電子信息技術飛速發展的今天,電磁干擾(EMI)已成為影響電子設備性能和穩定性的重要因素。今天深圳比
    發表于 05-21 11:19

    測試究竟是什么?與性能測試的差別是什么?

    測試性能測試在多個方面存在顯著的區別。 首先,信測試是一個更為全面和系統的
    的頭像 發表于 04-24 15:34 ?939次閱讀

    測試哪些產品需要做呢?

    測試是指對信工程項目中的產品、系統等進行測試和驗證,以確保其符合預期要求和性能表現。
    的頭像 發表于 04-23 18:19 ?679次閱讀

    龍芯中科三項信方案入圍工信部2023年信息技術應用創新應用示范案例名單

    近日,工業和信息化部通報了2023年信息技術應用創新解決方案征集遴選結果,本次共評選出典型解決方案173個、應用示范案例83個、單項創新案例64個。
    的頭像 發表于 03-07 16:45 ?1014次閱讀
    龍芯中科三項信<b class='flag-5'>創</b>方案入圍工信部2023年<b class='flag-5'>信息技術</b>應用創新應用示范案例名單
    百家乐视频赌博| 赌博百家乐官网判断决策| 韦德国际| 利记娱乐| 博狗百家乐官网真实| 百家乐官网纯数字玩法| 百家乐官网的寻龙定穴| 百家乐官网ho168平台| 钱隆百家乐官网分析| 破战百家乐官网的玩法技巧和规则| 黄金城百家乐官网安卓版| 家百家乐破解软件| 至尊百家乐娱乐平台| 威尼斯人娱乐城导航网| 大发888排行| 豪龙国际娱乐| 云鼎百家乐官网现金网| 百家乐官网优博u2bet | 金木棉百家乐官网的玩法技巧和规则 | 巴特百家乐官网的玩法技巧和规则| 百家乐公式分析| 百家乐路单| 大发888集团| 单张百家乐官网论坛| 海王星百家乐官网技巧| 网络百家乐怎么作弊| 百苑百家乐的玩法技巧和规则| 现金网开户| 百家乐官网真人真钱| 网上百家乐官网娱乐网| 百家乐视频聊天游戏| 幸运水果机小游戏| 百家乐官网发牌千数| 香港百家乐官网娱乐场开户注册| 太阳城百家乐网址--| 大发888官方爱好| 读书| 乐天堂百家乐官网娱乐城| A8百家乐娱乐网| 十大博彩网| 百家乐官网赌博技巧大全|