Coremark - Coremark

CoreMark er en benchmark , at foranstaltninger udførelsen af centralenheder (CPU), der anvendes i indlejrede systemer . Det blev udviklet i 2009 af Shay Gal-On hos EEMBC og er beregnet til at blive en industristandard, der erstatter Dhrystone- benchmarket. Koden er skrevet i C og indeholder implementeringer af følgende algoritmer: listebehandling (find og sorter), matrixmanipulation (almindelige matrixoperationer), tilstandsmaskine (bestem om en inputstrøm indeholder gyldige tal) og CRC . Koden er under Apache License 2.0 og er gratis at bruge, men ejerskabet bevares af konsortiet og offentliggørelse af modificerede versioner under CoreMark-navnet er forbudt.

Problemer behandlet af CoreMark

CRC-algoritmen tjener en dobbelt funktion; det giver en arbejdsbyrde, der ofte ses i indlejrede applikationer og sikrer korrekt funktion af CoreMark-benchmarket, hvilket i det væsentlige giver en selvkontrolmekanisme. For at kontrollere korrekt funktion udføres specifikt en 16-bit CRC på dataene indeholdt i elementer på den linkede liste .

For at sikre, at kompilatorer ikke kan forhåndsberegne resultaterne på kompileringstidspunktet, får hver operation i benchmarket en værdi, der ikke er tilgængelig på kompileringstidspunktet. Desuden er al kode, der bruges inden for den tidsbestemte del af benchmarket, en del af selve benchmarket (ingen biblioteksopkald ).

CoreMark versus Dhrystone

CoreMark trækker på styrkerne, der gjorde Dhrystone så modstandsdygtige - det er lille, bærbart, let at forstå, gratis og viser et enkelt tal benchmark score. I modsætning til Dhrystone har CoreMark specifikke køre- og rapporteringsregler og var designet til at undgå de velkendte problemer, der er blevet citeret med Dhrystone .

Større dele af Dhrystone er modtagelige for en kompilators evne til at optimere arbejdet væk; det er således mere en compiler-benchmark end en hardware-benchmark. Dette gør det også meget vanskeligt at sammenligne resultater, når forskellige kompilatorer / flag bruges.

Biblioteksopkald foretages inden for den tidsbestemte del af Dhrystone. Disse biblioteksopkald bruger typisk størstedelen af ​​den tid, der bruges af benchmarket. Da bibliotekkoden ikke er en del af benchmarket, er det vanskeligt at sammenligne resultater, hvis der bruges forskellige biblioteker. Der findes retningslinjer for, hvordan man kører Dhrystone, men da resultaterne ikke er certificeret eller verificeret, håndhæves de ikke. Der er ingen standardisering af, hvordan Dhrystone-resultater skal rapporteres, med forskellige formater i brug (DMIPS, Dhrystones per sekund, DMIPS / MHz)

Resultater

CoreMark-resultater kan findes på CoreMark-webstedet og på processorens datablade. Resultaterne er i følgende format:

CoreMark 1.0: N / C / P / M

  • N Antal iterationer pr. Sekund (med frø 0,0,0x66, størrelse = 2000)
  • C Compiler version og flag
  • P Parametre som data og kodetildelingsspecifikationer
  • M - Type paralleludførelse af algoritme (hvis brugt) og antal sammenhænge

For eksempel: CoreMark 1.0: 128 / GCC 4.1.2 -O2 -fprofile-use / Heap in TCRAM / FORK: 2

Se også

Referencer

eksterne links