Wednesday 9 August 2017

Spec 2006 Arm Binära Alternativ


SPEC-benchmarks. SPEC 2000 spec2k. För att köra SPEC 2000-binärer på gem5 kan du använda paketet cpu2000 python package cpu2000 python package. cpu2000. Cpu2000 pythonpaketet definierar arbetsbelastningsklasser som representerar olika riktmärken från SPEC 2000 CPU-suite. Dessa tar ISA, som fungerar System och önskad ingångssats som parametrar Följande exempel är from. This skapar en arbetsbelastning som representerar gzip-loggspec2000 benchmarken kompilerad för alpha tru64 med smred ingångssatsen och tilldelar den till. Workloads skapade från detta paket förväntar sig att hitta sina binärer och inmatningar Filer i följande två kataloger, respektive. Skylta emuleringslägeskommandon. Om du skulle vilja köra SPEC2K med syscall-emuleringsläge kan du hitta en bra referens för de korrekta kommandoradsalternativen här. Observera att de här kommandoraden är exklusiva för reducerade minimerade ingångssatser. Om du inte kan använda cpu2000-paketet, kan du fortfarande konfigurera och köra binärer som du normalt skulle göra för att köra ett statiskt länkt ALPHA eon binärt med följande Command line. SPEC 2006 spec2k6.We behöver få bitar av info från SPEC2006benchmarks och begå några av koden som nämns there. PyInstaller Manual. This dokument har placerats i det offentliga domain. PyInstaller buntar ett Python-program och alla dess beroende i en enda Paketet Användaren kan köra den förpackade appen utan att installera en Python tolk eller några moduler. PyInstaller stöder Python 2 7 och Python 3 3 och klarar de stora Python-paketen korrekt, t. ex. Numpy, PyQt, Django, WxPython och others. PyInstaller testas mot Windows, Mac OS X och Linux Det är emellertid inte en cross-compiler att göra en Windows-app som du kör PyInstaller i Windows för att skapa en Linux-app som du kör den på Linux, etc. PyInstaller har använts succ Väsentligt med AIX, Solaris och FreeBSD, men testas inte mot dem. Vad är New This Release. Release 3 0 är en stor omskrivning som lägger till Python 3-stöd, bättre kodkvalitet genom användning av automatiserad testning och lösningar för många gamla problem. Funktionella förändringar inkluderar borttagning av stöd för Python före 2 7, ett enklare sätt att inkludera datafiler i buntet Lägga till filer i paketet och ändras till kroken API Förstå PyInstaller Hooks. Indices and tables. GCC 4 8 Release Series Changes , Nya funktioner och fixes. GCC använder nu C som dess genomförandespråk. Det innebär att för att bygga GCC från källor behöver du en C-kompilator som förstår C 2003. För mer information om grunden och specifika ändringar, se C-konvertering Sida. För att möjliggöra grafitramen för loopoptimeringar behöver du nu CLooG-version 0 18 0 och ISL-version 0 11 1 Båda kan erhållas från GCC-infrastrukturkatalogen Installationsmanualen innehåller mer information om krav Ents att bygga GCC. GCC använder nu en mer aggressiv analys för att härleda en övre gräns för antalet iterationer av slingor med användning av begränsningar som följer av språkstandarder. Det kan leda till att överensstämmande program inte längre fungerar som förväntat, såsom SPEC CPU 2006 464 H264ref och ett nytt alternativ, - fno-aggressiva-loop-optimeringar har lagts till för att inaktivera denna aggressiva analys. I vissa loopar som har känt ett konstant antal iterationer men odefinierat beteende är känt att inträffa i slingan innan den når eller under den senaste iterationen, GCC kommer att varna om det odefinierade beteendet i slingan istället för att härleda nedre övre gränsen för antalet iterationer för slingan. Varningen kan inaktiveras med - Wno-aggressiv slinga-optimeringar. På ARM har en bugg fixats i GCC s Implementering av AAPCS-reglerna för vectors layout som kan leda till att fel kod genereras. Vektorer som är större än 8 byte i storlek är nu standardjusterade till en 8-bytegräns. Detta är en ABI-ändringskod som gör Uttrycklig användning av vektortyper kan vara inkompatibel med binära objekt som är byggda med äldre versioner av GCC. Automatiserad kod påverkas inte av denna förändring. Vid AVR har supporten tagits bort för kommandoradsalternativet - mall-samtal som avskrivits i GCC 4 7 . I AVR är konfigurationsalternativet - med-avrlibc som stöds sedan GCC 4 7 2 aktiverat per standard för alla icke-RTEMS-konfigurationer. Detta alternativ möjliggör en bättre integration av AVR Libc med avr-gcc. För tekniska detaljer, se PR54461 Till Stäng av alternativet i icke-RTEMS-konfigurationer, använd - med-avrlibc nej Om kompilatorn är konfigurerad för RTEMS, är alternativet alltid avstängt. Mer information om portning till GCC 4 8 från tidigare versioner av GCC finns i Port-guide för denna release. General Optimizer förbättringar och ändringar. DWARF4 är nu standard när du genererar DWARF-felsökningsinformation När - g används på en plattform som använder DWARF felsökningsinformation, kommer GCC nu som standard till - gdwarf-4-fno-debug - Typsnitt GDB 7 5, V Algrind 3 8 0 och elfutils 0 154 felsökning information konsumenter stöd DWARF4 som standard Innan GCC 4 8 användes standardversionen DWARF2 För att göra GCC 4 8 generera en äldre DWARF-version använd - g tillsammans med - gdwarf-2 eller - gdwarf-3 Standard för Darwin och VxWorks är fortfarande - gdwarf-2 - gstrict-dwarf. En ny generell optimeringsnivå, - Og har införts. Den tar upp behovet av snabb kompilering och en överlägsen debugging-upplevelse, samtidigt som det ger en rimlig nivå av körtidseffekt. Erfarenhet för utveckling borde vara bättre än standardoptimeringsnivån - O0. En ny möjlighet - Free-partial-Pre har lagts till för att kontrollera PRE-optimering av partiell redundans eliminering. Detta alternativ är aktiverat som standard vid optimeringsnivån - O3 och det gör PRE Mer aggressiv. Alternativet - fonserver-rymden har tagits bort det var inte längre användbart på de flesta mål eftersom GCC stöder att sätta variabler i BSS utan att göra dem vanliga. Struct reorg och matrix reorg optimizations comm And-line-alternativ - fipa-struct-reorg och - fipa-matrix-reorg har tagits bort De fungerade inte alltid korrekt, och de fungerade inte med länktidsoptimering LTO, varför endast tillämpliga på program som består av en enda översättningsenhet . Allmänna skalbarhetsflaskhalsar har tagits bort från GCCs optimeringspass. Kompilering av extremt stora funktioner, t. ex. på grund av användningen av flattattributet i biblioteket Eigen C-linjär algebra mallar, är betydligt snabbare än tidigare utgåvor av GCC. Link-tid Optimering LTO-förbättringar. LTO-partitionering har skrivits om för bättre tillförlitlighet och underhåll. Flera viktiga fel som leder till länkfel har fastställts. Interna processuella optimeringsförbättringar. Ett nytt symboltabell har implementerats. Det bygger på befintliga callgraph - och varpool-moduler och ger ett nytt API ovanligt Symbolvisibiliteter och alias hanteras mer konsekvent vilket leder till till exempel mer aggressiv oåtkomlig kodavlägsnande med LTO. Th E inline heuristic kan nu kringgå gränser på storleken av inline-funktioner när inlining är särskilt lönsam Detta händer exempelvis när loopgränser eller array-strömmar förökas. Val som passeras genom aggregat antingen genom värde eller referens sprids nu vid inter - procedurell nivå som leder till bättre beslutsfattande, till exempel när det gäller Fortran-array-deskriptorer och devirtualization. AddressSanitizer en snabb minnesfel detektor, har lagts till och kan aktiveras via - fsanitize-adress. Minnesåtkomstinstruktionerna kommer att instrumenteras för att upptäcka heap - stack - och globalt buffertöverflöde samt användarfria buggar För att få snyggare stacktraces, använd - no-omit-frame-pointer Adressanordningen är tillgänglig på IA-32 x86-64 x32 PowerPC PowerPC64 GNU Linux och på x86- 64 Darwin. ThreadSanitizer har lagts till och kan aktiveras via - fsanitize thread Instruktionerna kommer att instrumenteras för att upptäcka data raser ThreadSanitizer finns på x86-64 GNU Linux. A new lo Cal register allocator LRA har implementerats, vilket ersätter det 26-åriga reloadpasset och förbättrar genererad kodkvalitet. För närvarande är den aktiv i målen IA-32 och x86-64. Stöd för transaktionsminne har implementerats på följande arkitekturer IA - 32 x86-64, ARM, PowerPC, SH, SPARC och Alpha. New Languages ​​and Language-specifika förbättringar. Varje diagnostisk utmatning innehåller nu den ursprungliga källlinjen och en caret som indikerar kolumnen. Alternativet - foddiagnostik-show-caret undertrycker detta Information. Alternativet - ftrack-makro-expansion 2 är nu aktiverat som standard Detta gör det möjligt för kompilatorn att visa makroexpansionsstacken i diagnostik. I kombination med informationen om caret är ett exempel på diagnostik som visar dessa två funktioner. En ny - Wsizeof-pekare - Memaccess-varning har lagts till även aktiverad av - Wall för att varna om misstänksamma längdparametrar till vissa sträng - och minnesinbyggda funktioner om argumentet använder sizeof Den här varningen varnar till exempel om memset ptr, 0, siz Eof ptr om ptr inte är en array, men en pekare, och föreslår en eventuell fix, eller om memcpy foo, ptr, sizeof foo. Det nya alternativet - Wpedantic är ett alias för - pedantiskt som nu avlägsnas. Blanketterna - Wno-pedantic - Werror pedantic och - Wno-fel pedantic fungerar på samma sätt som för något annat - W alternativ En försiktighet är att - Werror pedantic är inte lika med - pedantiska-fel eftersom det senare gör fel i några varningar som inte kontrolleras av - Wpedantic och den förstnämnda påverkar bara diagnostik som är inaktiverade när du använder - Wno-pedantic. Alternativet - Wshadow varnar inte längre om en deklaration skuggar en funktionsdeklaration, såvida inte den tidigare förklarar en funktion eller pekare att fungera, eftersom detta är vanligt och giltigt Fallet i verklig kod. G genomför nu C 11-trådlöseordet detta skiljer sig från GNU-tråds nyckelordet, främst genom att det möjliggör dynamisk initiering och destruktion semantik. Tyvärr kräver detta stöd en strafftid för referenser till icke-funktionella Jon-lokala threadlocal-variabler definierade i en annan översättningsenhet, även om de inte behöver dynamisk initialisering, så användare kanske vill fortsätta att använda tråd för TLS-variabler med statisk initialiserings semantik. Om programmeraren kan vara säker på att ingen användning av variabeln i En icke-definierande TU behöver utlösa dynamisk initialisering antingen på grund av att variabeln är statiskt initierad eller att en användning av variabeln i den definierande TU-enheten kommer att utföras före användningar i en annan TU, kan de undvika detta överhuvud med - fno-extern - Tls-init option. OpenMP threadprivate variabler stöder nu också dynamisk initialisering och förstörelse med samma mekanism. G implementerar nu C 11 attributsyntaxen, t. ex. och även justeringsspecifikationen, implementerar e gG nu C 11 arvskonstruktörer, e g. As av GCC 4 8 1, G implementerar förändringen till decltype semantik från N3276.As av GCC 4 8 1 implementerar G C 11 ref-kvalifiering, e gG stöder nu a-std c 1y alternativ för experiment med funktioner propo Sed för nästa revision av standarden, förväntad runt 2014 För närvarande är den enda skillnaden från - std c 11 stöd för avdragstypsavdrag i normala funktioner, vilket föreslås i N3386 Status för C 1y-funktioner i GCC 4 8 finns här. G namespace association extension, attribut strong har avlägsnats Inline namespaces ska användas istället. G stöder nu ett - fält-numeriskt-bokstavligt alternativ för att kontrollera om GNU-numeriska bokstäver suffixer accepteras som tillägg eller behandlas som C 11 användardefinierade numeriska bokstäver Flaggan används som standard för GNU-bokstäver som standard för - std gnu och - std c 98 Flaggan är av använd suffixer för användardefinierade bokstäver som standard för - std c 11 och senare. Runtime Library libstdc. Improved experimental support for the Ny ISO C-standard, C 11 inklusive. forwardlist uppfyller allokeringsmedvetna behållarkraven. fördelad sleepfor thisthread sleepuntil och thisthread-utbyte definieras utan att konfigurationsalternativet --enable-libstdcx behöver X-time. Improvements to random. SSE optimerad normaldistribution. Use av hårdvara RNG instruktioner för randomdevice på nya x86 processorer kräver att assembler stöder instruction. and ext random. New slumptalsmotor simdfastmersennetwisterengine med en optimerad SSE implementation. New slumpmässiga nummer fördelningar Betadistribution normalmvdistribution ricedistribution nakagamidistribution paretodistribution kdistribution arcsinedistribution hoytdistribution. Added --disable-libstdcxx-verbose konfigurera alternativet för att inaktivera diagnostiska meddelanden som utfärdas när en process slutar onormalt. Det kan vara användbart för inbyggda system för att minska storleken på exekveringar som länkas statiskt till meddelandet om bibliotekspatienter. Modulfiler Versionen av modulfiler har ökats Fortran MODULE s som sammanställts av tidigare GCC-versioner måste rekompileras när de är ANVÄND d av filer som sammanställs med GCC 4 8 GCC 4 8 kan inte läsa filer skapade av tidigare versioner som försöker Gör det ger en e Rror meddelande Obs! ABI för den producerade assemblerdatan själv har inte ändrat objektfiler och bibliotek är helt kompatibla med äldre versioner, med undantag för vad som anges nedan. ABI Några interna namn som används i assemblerobjektfilen har ändrats för symboler som deklarerats i specifikationsdelen av en Modul Om en berörd modul eller en fil som använder den via användarföreningen återkompileras, måste modulen och alla filer som direkt använder sådana symboler också kompileras. Denna ändring påverkar endast följande typ av modulsymboler. Procedurpekare Anmärkning C-kompatibel funktion Pekare typ cfunptr påverkas inte heller, eller är procedur-pekarkomponenter. Teckensträngar med lång längd. BACKTRACE-inbyggda subrutin har lagts till. Det visar en backtrace på en godtycklig plats i användarkoden. Programkörningen fortsätter normalt efteråt. - Wc-bindande typen Varningsmeddelandet har blivit standardaktiverat. Det varnar om en variabel kanske inte är C interoperabel speciellt om variabeln har Har deklarerats med hjälp av en inneboende typ med standard typ istället för att använda en typ av parameter som definierats för C-interoperabilitet i den inbyggda ISOCBinding-modulen. Innan denna varning alltid skrivs ut. Alternativet - Wc-bindande är aktiverat av - Wall. - Wrealloc-lhs Och - Wrealloc-lhs-alla varningskommandon-alternativ har lagts till, vilket diagnostiserar när koden är infogad för automatisk omfördelning av en variabel under uppdraget. Detta alternativ kan användas för att bestämma om det är säkert att använda - no-realloc-lhs Dessutom kan det användas för att hitta automatisk reallokering i hot loopar. För arrayer ersätter var av var av den automatiska omfördelningen. Kommandoraden Alternativet - Wcompare-reals har lagts till. När detta är inställt, utges varningar när man jämför REAL eller COMPLEX-typer för jämlikhet och ojämlikhet överväga att ersätta ab med ab eps med en lämplig eps - Wcompare-reals aktiveras av - Wextra. The - Warget-Lifetime-kommandoradsalternativet har lagts till aktiverat med - Wall, som varnar om p Ointerna i en pekare uppgift kan överträffa sitt mål. Reading flytande punkt nummer som använder q för exponentiell som 4 0q0 stöds nu som leverantörsutbyggnad för bättre kompatibilitet med gamla datafiler Det rekommenderas starkt att använda IO motsvarande men standard överensstämmelse E såsom 4 0e0. För Fortran-källkod, överväga att ersätta q i flytande punkt-bokstäver med en vänlig parameter, t. ex. 4 0e0qp med en lämplig qp. Observera att i källkod för Fortran, som ersätter q med en enkel e, inte är lika. GFORTRANTMPDIR-miljövariabeln för att ange en icke - Standardkatalogen för filer som öppnas med STATUS SCRATCH används inte längre I stället kontrollerar gfortran POSIX GNU-standard TMPDIR-miljövariabeln Om TMPDIR inte är definierad, faller gfortran tillbaka till andra metoder för att bestämma katalogen för temporära filer enligt dokumentationen i användarmanualen. . Stöd för obegränsade polymorfa variabler KLASS har lagts till. Oavsiktliga teckenlängder stöds ännu inte. Avsatta typer av TYPE stöds nu. Experimentellt stöd för dimensioner av antagningsrankningsrader har lagts till. Observera att gfortran s egen array-deskriptor används för närvarande, vilket är annorlunda Från den som definieras i TS29113, se gfortran s header-fil eller använd Chasm Language Interoperability Tools. GCC 4 8 2 provisioni Av ett fullständigt genomförande av Go 1 1 2 release. GCC 4 8 0 och 4 8 1 implementera en preliminär version av Go 1 1-utgåvan. Bibliotekstjänsten är inte helt komplett. Go har testats på GNU Linux och Solaris-plattformar för olika Processorer inklusive x86, x8664, PowerPC, SPARC och Alpha Det kan fungera på andra plattformar också. Nya mål och målspecifika förbättringar. En ny port har lagts till för att stödja AArch64, den nya 64-bitars arkitekturen från ARM Observera att detta är En separat port från den befintliga 32-bitars ARM-porten. Porten ger initialt stöd för Cortex-A53 och Cortex-A57-processorerna med kommandoradsalternativen - mcpu cortex-a53 och - mcpu cortex-a57.As av GCC 4 8 4 en lösning för ARM Cortex-A53 erratum 835769 har lagts till och kan aktiveras genom att ge alternativet - fix-cortex-a53-835769 Alternativt kan den aktiveras som standard genom att konfigurera GCC med - enable-fix-cortex - A53-835769 option. Initial support har lagts till för definitionen av AArch32 extensions D i ARMv8-arkitekturen. Kodgenereringsförbättringar för Cortex-A7 och Cortex-A15 CPU. Ett nytt alternativ, - mcpu marvell-pj4, har lagts till för att generera kod för Marvell PJ4-processorn. Kompilatorn kan nu automatiskt generera VFMA VFMS REVSH och REV16 instruktioner. En ny vektoriseringsmodell för avancerade SIMD-konfigurationer för att förbättra de automatiska vektoriseringsstrategierna. Schemaläggaren tar nu hänsyn till antalet liveregistren för att minska mängden spill som kan uppstå. Detta bör förbättra kodprestandan i stora Funktioner Gränsen kan tas bort med hjälp av alternativet - fno-schemaläggning. Förbättringar har gjorts i Marvell iWMMX-kodgenerering och support för iWMMX2 SIMD-enheten har lagts till. Alternativet - mcpu iwmmxt2 kan användas för att aktivera kodgenerering för Det senare. Ett antal kodgenereringsförbättringar för Thumb2 för att minska kodstorleken när de kompileras för M-profilprocessorer. RTEMS-armstödporten har uppdaterats för att använda EABI. Code-genen Rationstöd för de gamla FPA - och Maverick-floating-point-arkitekturerna har tagits bort. Portar som tidigare åberopade dessa funktioner har också tagits bort. Detta inkluderar target. arm - linux-gnu-användarmen - - linux-gnueabi. arm Arm - - abi. arm - - uclinux använd arm - - uclinux eabi. arm - - ecos-elf ingen alternativ. arm - - freebsd ingen alternativ. arm - wince-pe inget alternativ. Stöd för den inbäddade C-fixpunkten har varit Läggas till För detaljer, se GCC wiki och användarhandboken. Stödet är inte komplett. En ny utskriftsmodifierare r för registret operander i inline-monteraren stöds. Det kommer att skriva ut det raka registret numret utan registret prefixet r Inline-monteraren i det här exemplet kommer att Generera kod som förutsatt att c är tilldelad till R24 och val tilldelas till R8 R15 Detta fungerar eftersom GNU-monteraren accepterar vanliga registernummer utan registerprefix. Statiska initierare med 3-byte symboler stöds nu Detta kräver åtminstone Binutils 2 23.Allow - mpreferred-stack-Boun Dary 3 för x86-64 arkitekturen med SSE-förlängningar inaktiverad Eftersom x86-64 ABI kräver 16 byte stackinriktning är detta ABI inkompatibelt och är avsett att användas i kontrollerade miljöer där stackutrymme är en viktig begränsning. Detta alternativ leder till fel kod När funktioner som sammanställs med 16 byte stack-inriktning som funktioner från ett standardbibliotek kallas med feljusterad stapel. I det här fallet kan SSE-instruktioner leda till feljusterade minnesåtkomstfällor Dessutom kommer rörliga argument att hanteras felaktigt för 16 bytejusterade objekt inklusive x87 långa Dubbel och int128, vilket leder till felaktiga resultat Du måste bygga alla moduler med - preferred-stack-boundary 3 inklusive bibliotek. Detta inkluderar systembibliotek och startmoduler. Stöd för det nya Intel-kodprofilnamnet Broadwell med RDSEED ADCX ADOX PREFETCHW är tillgängligt genom - Madx - mprfchw - mrdseed kommandoradsalternativ. Stöd för Intel RTM och HLE-intrinsik, inbyggda funktioner och kodgener Eration är tillgänglig via - mrtm och - mhle. Stöd för Intel FXSR, XSAVE och XSAVEOPT instruktionssatser Intrinsics och inbyggda funktioner är tillgängliga via - mfxsr - mxsave och - mxsaveopt respektive. Nytt - maddress-mode korta långa alternativ för x32 - Maddress-mode kort överstyrar standard 64-bitars adresser till 32-bitars genom att ge 0x67 adress-storlek överstyrning prefix Detta är standard adressläge för x32.Ny inbyggda funktioner för att upptäcka körtid CPU-typ och ISA. A built - I funktion builtincpuis har lagts till för att upptäcka om körtid CPU är av en viss typ. Det returnerar ett positivt heltal på en match och noll annars. Det accepterar ett strängs bokstavligt argument, CPU-namnet. Exempelvis returnerar builtincpuis westmere ett positivt heltal om Körtidsprocessorn är en Intel Core i7 Westmere-processor. Se användarhandboken för listan med giltiga CPU-namn igenkända. En inbyggd funktion builtincpusupports har lagts till för att upptäcka om körtidsprocessorn stöder en viss ISA-funktion lämna tillbaka Ett positivt heltal på en match och noll annars Det accepterar ett strängs bokstavligt argument, ISA-funktionen Till exempel, buildincpusupports ssse3 returnerar ett positivt heltal om körtidsprocessorn stöder SSSE3-instruktioner. Se användarmanualen för listan över giltiga ISA-namn Recognized. Caveat Om dessa inbyggda funktioner kallas innan några statiska konstruktörer åberopas, liksom vid IFUNC-initiering, måste CPU-detekteringsinitialiseringen uttryckligen köras med hjälp av den nyligen inbyggda inbyggda funktionen, builtincpuinit. Initialiseringen behöver endast utföras en gång Det här är till exempel hur invokningen skulle se ut inom en IFUNC-initierare. Funktion Multiversioning Support med G. It är nu möjligt att skapa flera funktionsversioner, som vänder sig mot en specifik processor och eller ISA-funktionsversioner har samma signatur men olika målattribut för Exempel, här är ett program med funktionsversioner. Vänligen hänvisa till denna wiki för mer information. X86-backen Slutet har förbättrats för att möjliggöra att alternativet - fschedule-insns fungerar tillförlitligt. Detta alternativ kan användas för att schemalägga instruktioner bättre och leder till förbättrad prestanda i vissa fall. Windows MinGW-w64-mål - w64-mingw kräver minst r5437 från Mingw-w64 Trunk. Support för nya AMD familj 15h processorer Steamroller kärna är nu tillgänglig via - march bdver3 och - mtune bdver3 options. Support för nya AMD familj 16h processorer Jaguar kärna är nu tillgänglig via - march btver2 och - mtune btver2 options. This målet Nu stöder kommandoradsalternativet - fack-användning. GCC kan nu generera kod specifikt för R4700-, Broadcom XLP - och MIPS 34kn-processorerna. De associerade - marchalternativen är - march r4700 - march xlp och - march 34kn respektive. GCC genererar nu bättre DSP-kod för MIPS 74k-kärnor tack vare ytterligare schemaläggningsoptimeringar. MIPS-porten stöder nu alternativet - fack-check. GCC levererar nu - mmcu och - mno-mcu-alternativen till monteraren. Tidiga versioner av GCC skulle s Acceptera - fpic och - fPIC för - mno-abicalls mål som mips - elf Denna kombination var inte avsedd eller stödd och genererade inte positionsoberoende kod GCC 4 8 rapporterar nu ett fel när denna kombination används. PowerPC PowerPC64 RS6000. SVR4-konfigurationer GNU Linux, FreeBSD, NetBSD lagrar inte längre, återställer eller uppdaterar VRSAVE-registret som standard De respektive operativsystemen hanterar VRSAVE-registret direkt. Stort TOC-stöd har lagts till för AIX genom kommandoradsalternativet - mcmodel large. Native Thread - Lokalt lagringsstöd har lagts till för AIX. VMX Altivec och VSX-instruktionssätt är nu implicit när de tar ställning till processorer som stöder dessa hårdvarufunktioner på AIX 6 1 och senare. Detta mål kommer nu att utfärda ett varningsmeddelande när flera snabbavbrottshanterare finns i Samma samlingsenhet Den här funktionen kan stängas av med kommandoraden för nya kommandoraden New-Mno-Warn-Multiple-Interrupt. S 390, System z. Support för IBM zEnterprise z EC12 processor har lagts till. När du använder alternativet - march zEC12 kommer kompilatorn att generera kod som använder sig av följande nya instruktioner. Ladda och fäll instruktioner.2 Nya jämför och fäll instruktioner. Rotera och sätt in valda bitar - utan CC clobber. Mtune zEC12-alternativet möjliggör zEC12-specifik instruktionsplanering utan att använda nya instruktioner. Registrering av tryckkänslig instruktionsschemaläggning är aktiverad som standard. Ifunc-funktionen är aktiverad som standard. memcpy och memcmp invokations på stora minnesbitar eller med körtidslängder genereras inte Inline längre när du ställer in för z10 eller högre Syftet är att använda de optimerade IFUNC-versionerna i Glibc. Standardinställningsinställningarna har reducerats till mindre aggressiva Detta resulterar i mer kompakt kod för optimeringsnivåer än - Os. Improved support for De inbyggda inbyggda funktionerna. En ny alternativ - matomisk modellmodell väljer modellen för de genererade atomsekvenserna Följande modell S stöds soft-gusa Software gUSA-sekvenser SH3 och SH4 bara På SH4A-mål kommer detta nu också delvis att använda movco l - och movli-instruktionerna Detta är standard när målet är sh3 - - linux eller sh4 - - linux hard-llcs Hårdvara Movco l movli l-sekvenser SH4A bara soft-tcb Mjukvaruövervakningsblocksekvenser Soft-imask Programvara avbryter bläddringssekvenser Endast privilegierat läge Detta är standard när målet är sh1 - - linux eller sh2 - - linux none Genererar funktionssamtal till respektive atom Inbyggda funktioner Det här är standard för SH64-mål eller när målet inte är sh - - linux. Alternativet - soft-atom har avlägsnats Det är nu ett alias för matematisk modell soft-gusa. En ny option - mtas Gör kompilatorn generera tas b-instruktionen för den inbyggda funktionen atomictestandset oavsett den valda atommodellen. Synkroniseringsfunktionerna i libgcc återspeglar nu den valda atommodellen när verktyget kedjan byggs. Tillägget stöd för mov b och mov w instrument Ctions med förskjutning adressering. Added stöd för SH2A instruktioner movu b och movu w. Various förbättringar till kod genererade för heltal aritmetic. Provements till villkorliga grenar och kod som involverar T bit Ett nytt alternativ - mzdcbranch berättar kompilatorn att gynna nollförskjutning Grenar Detta är aktiverat som standard för SH4-mål. Pref-instruktionen kommer nu att emitteras av den inbyggda prefetch-inbyggda funktionen för SH3-mål. Fmac-instruktionen kommer nu att skickas ut av fmaf-standardfunktionen och den inbyggda inbyggda inbyggda funktionen. Mfused-madd-alternativet har avlägsnats till förmån för det maskinoberoende - ffp-kontraktsalternativet Observera att fmac-instruktionen nu kommer att genereras som standard för uttryck som abc Detta beror på att standardinställningen för kompilatorn är snabb. Alternativ - mfsrra och - mfsca för att tillåta kompilatorn att använda fsrra - och fsca-instruktionerna för andra mål än SH4A där de redan är aktiverade som standard. Added support for the Builtinbswap32 inbyggd funktion Den är nu utökad som en sekvens av swap b och swap w instruktioner istället för ett biblioteksfunktionssamtal. Beteendet hos - mieee-alternativet har fixats och den negativa formen - mno-ieee har lagts till för att styra IEEE-överensstämmelse med flytpunkts-jämförelser Som standard är - mieee nu aktiverat och alternativet - ffinite-math-only implicit set - mno-ieee. Added-stöd för de inbyggda funktionerna builtinthreadpointer och builtinsetthreadpointer Detta förutsätter att GBR används för att hålla tråden Pekare av den aktuella tråden Minnesbelastningar och butiker i förhållande till adressen som returneras av builtinthreadpointer kommer nu också att använda GBR-baserade förskjutningsadresslägen. Mdiv-alternativet för andra mål än SHmedia har fixats och dokumenterats. Tilläggsoptimerade instruktionsscheman för Niagara4.Added support För alternativet - mcmodel MODEL-kommandoraden Modellerna som stöds är små och stora. Detta mål stöder nu E3V5-arkitekturen via användningen av den nya mv850 E3v5 kommandoradsalternativ Det har också experimentellt stöd för e3v5 LOOP-instruktionen som kan aktiveras via kommandoraden new-mloop. Det här målet stöder nu kommandoradsalternativet - fack-användning. Operating Systems. Support för OpenBSD amd64 X8664-openopend har lagts till och stöd för OpenBSD i386 i386-openopend har blivit föryngrad. Windows Cygwin. Executables är nu länkade till delad libgcc som standard Den tidigare standarden var att länka statiskt, vilket fortfarande kan göras genom att explicit specificera - statisk Eller static-libgcc på kommandoraden Men det är starkt rekommenderat eftersom det kommer att orsaka problem för alla applikationer som använder sig av DLL-filer som sammanställs av GCC. Det borde vara bra för en monolitisk fristående applikation som endast länkar till Windows DLLs, Men erbjuder lite eller ingen nytta. Det här är listan över problemrapporter PR från GCCs buggspårningssystem som är känt att vara fixat i 4 8 ​​1-utgåvan. Denna lista är kanske inte komplett, det är möjligt Att några PR som har fixats inte listas här. C 11 chrono std chrono systemklocka och std chrono steadyclock klasser har ändrat ABI i GCC 4 8 1, de båda är nu separerade aldrig typedefs av varandra, båda använder std chrono nanosekunder upplösning , På de flesta GNU Linux-konfigurationer är std chrono steadyclock nu äntligen monotoniskt och båda klasserna är manglade annorlunda än i tidigare GCC-utgåvor std chrono systemclock nu med std chrono microseconds resp std chrono sekunder upplösning exporteras fortfarande för bakåtkompatibilitet med standardkonfigurerad libstdc Obs Att libstdc konfigurerad med - enable-libstdcxx-tid brukade vara ABI inkompatibel med standardkonfigurerad libstdc för de två klasserna och ingen ABI-kompatibilitet kan erbjudas för dessa konfigurationer, så någon C 11-kod som använder dessa klasser och har sammanställts och länkats Mot libstdc konfigurerad med konfigurationsalternativet non-default --enable-libstdcxx-time måste rekompileras. Detta är lisensen T av problemrapporter PR från GCCs buggspårningssystem som är känt att vara fixat i 4 8 ​​2-utgåvan Denna lista är kanske inte komplett, det är det möjligt att vissa PR som har fixats inte listas här. Det här är Lista över problemrapporter PR från GCCs buggspårningssystem som är känt att vara fixat i 4 8 ​​3-utgåvan Denna lista är kanske inte komplett, det är det möjligt att vissa PR som har fixats inte listas här. Stöd för new powerpc64le-linux platform has been added It defaults to generating code that conforms to the ELFV2 ABI. This is the list of problem reports PRs from GCC s bug tracking system that are known to be fixed in the 4 8 4 release This list might not be complete that is, it is possible that some PRs that have been fixed are not listed here. This is the list of problem reports PRs from GCC s bug tracking system that are known to be fixed in the 4 8 5 release This list might not be complete that is, it is possible that some PRs that have be en fixed are not listed here. For questions related to the use of GCC, please consult these web pages and the GCC manuals If that fails, the mailing list might help Comments on these web pages and the development of GCC are welcome on our developer list at All of our lists have public archives. Copyright C Free Software Foundation, Inc Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. SPEC CPU2006 Changes in V1 1.Last updated Date 2008-05-13 09 00 38 -0500 Tue, 13 May 2008 by Author john. To check for possible updates to this document, please see. Introduction Who Wants V1 1.SPEC CPU2006 V1 1 is an incremental update to SPEC CPU2006 V1 0 Results generated with V1 1 are comparable to results from V1 0 and vice versa V1 1 is intended to improve compatibility, stability, documentation and ease of use Changes are intended to be useful to several kinds of users. For users of new platforms. Updates to 12 benchmarks primarily to improve portability. For anyone who reads or produces a result. For researchers and developers. Documentation of the monitor hooks. Easier investigation of alternate sources or workloads, via the converttodevelopment utility. For testers of large systems. A group of 6 features to make the setup phase faster on big systems. Refinements of the submit and bind features and greatly expanded documentation thereof. For new users of the suite. Clarifications and additions to the documentation. Updated example config files. For those who test many platforms. Fewer unexpected rebuilds. The ability to bundle up a set of binaries and their associated config file, for easy transportation and use on other systems. Many other features intended to make benchmarking easier, more productive, and less error-prone, as summarized in the table of contents Depending on the level of detail at which you count, there are approximately 60 new, updated, or newly-documented user-visible features in V1 1.If you have already used SPEC CPU2006 V1 0 and already have configuration files, it is recommended that you read through this document, so as to avoid surprises during use of V1 1 Among the changes that you are likely to be affected by are the change to build directory locations the reporting of parallel flags the automatic setting of test date and the addition of debug logs If you still have USER numbers, it s time to stop now. This table of contents proceeds in rough order of time for a user of the suite you acquire a platform, ensure that you are familiar with the rules, build the benchmarks, run them, generate reports, and occasionally use utilities and other features.4 Submit lines continued.6 Trailing spaces in config files. Note links to SPEC CPU2006 documents on this web page assume that you are reading the page from a directory that also contains the other SPEC CPU2006 documents If by some chance you are reading this web page from a location where the links do not work, try accessing the referenced documents at one of the following locations. The SPEC Docs Unix or SPEC Docs Windows directory on a system where SPEC CPU2006 has been installed. The Docs directory on your SPEC CPU2006 distribution DVD. New systems supported. With this release of SPEC CPU2006, new support is added for. HP-UX 11iv1 on PA-RISC systems. MacOS X 10 1 on PowerPC systems. Systems no longer supported. With this release of SPEC CPU2006, su pport is removed for. RHAS 3r2 to RHAS 4r3 on Itanium systems. Linux on PowerPC-based systems with GLIBC 2 2 1-2 2 4.Changes to benchmarks. The following benchmark changes were made in V1 1.Added new portability flag - DSPECCPUNEEDPOSIXIDS to include the POSIX symbols uidt gidt and modet on Windows Note that this flag is the default for some Windows compilerspiling on Solaris with gcc, or gcc-compatible compilers, used to fail with messages such as because of a change in the Solaris FILE structure This problem has been fixed by removing the outdated code. Under V1 0 of SPEC CPU2006, if you compiled with gcc on ia64 Linux, the benchmark would sometimes abort abnormally with an unaligned access error, due to a jmpbuf on some Linux systems whose alignment violated the ABI You can now optionally set SPECCPUIA64GCCALIGNMENT to force jmpenv in scope h to be better aligned. Removed line directives from c-parse c. Several code segments which were protected by if defined SPECCPU2006 should have said S PECCPU and were fixed The effect of the change is to increase the degree to which both gcc and non-gcc compilers are presented with the same souce code when compiling. Internal system calls which set the OS scheduling priority were disabled The effect of this change is minimal, because when it is run from the SPEC harness, the GROMACS line option - nice 0 is included, which also disables these system calls For V1 0, a user studying outside the runspec harness might have encountered inconsistent measurements if - nice 0 was not used. Replaced a GPL version of the C99 math function erfc with a public domain version. Added new portability flag - DSPECCPUHAVEERF to have the benchmark use a system s erfc library function instead of the version included with the benchmark This flag is the default on some platforms. Rename getoptinternal to getoptinternal to avoid possible name clash user functions are not supposed to start with underscore. Added explicit inclusion of cstring header file. Added explic it inclusion of cstring header file in. Added some missing prototypes in quadrature h and tria h. In V1 0, some output was written to stderr That output is now written to regular files SPEC s validation has been adjusted to validate the new output. In V1 0, approximately 25,000 lines of output were duplicated to both the log file and to standard error The duplicate output has been elimated from stderr. In config h, there is a list of platforms that have complex h included Additional platforms can now be accomodated by setting - DSPECCPUNEEDCOMPLEXH. Some compilers object to having TRUE and FALSE used in this enum in parsetcommon h. which implicitly redefines FALSE to 0 and TRUE to 1 Although these are the same values they already had, some compilers object to the redefinition A simple solution is to undefine these just before the enum, which can be done by setting the new flag - DSPECCPUREDEFTRUEFALSE. Renamed random h to avoid clashes with system headers. Added new portability flag - DSPECCPUNEE DIOH to include the header file io h on Windows Previously, io h was only included if MSCVER was defined by the compiler. Fixed a Fortran 90 standards violation where two associated dummy arguments were defined during the execution of a subprogram Note that this update used the same fix as WRF version 2 2 is based on WRF version 2 1.In a bit more detail There is a subroutine in moduleblysu F90 that is called in violation of the Fortran standard about variable overlapping The routine tridin has three variables cu, r1,r2 that are passed in the same parameters as au, a1,a2 in both calls The new code has fixed this problem by making copies of the read-only versions of the duplicated parameters before the call. Added explicit inclusion of cstring header file. Multiple portability changes for use with the PGI C compiler on Windows. Added multiple portability changes for use with the ParallelNavi compiler on Solaris To use, you ll need to set - DSPECCPUPARANAVI. Run Rules Changes. Explain a philosophy of estimates in rule 1 6 and clarify marking of estimates in rule 4 8.Tweak rule 2 1 1 to clarify that the rule is discussing benchmark source code. Clarify documentation of system state and tuning, in rules 3 1 2 4 2 3 paragraphs b and g , and 4 2 4 paragraphs f, g. Add rule 3 2 5 for parallel setup and parallel test. Expand rule 4 2 3 on automatic parallelization and reporting thereof. Add new rule 4 2 6 regarding disclosure of configurations for user-built systems. In rule 4 3 2 allow conversions in both directions between SPECspeed metrics and 1 copy SPECrate metrics. In rule 4 6 note that a required disclosure is considered public information. Building Benchmarks. Build directories separated Benchmarks are now built in directories named or, on Windows, , rather than under the benchmark s run subdirectory The change is intended to make it easier to copy, backup, or delete build and run directories separately from each other It may also make problem diagnosis easier in some situations, sin ce your habit of removing all the run directories will no longer destroy essential evidence 10 minutes before the compiler developer says Wait - what exactly happened at build time. If you prefer the V1 0 behavior, you can revert to it by setting buildinbuilddir to 0.You can now bundle up a set of binaries and their associated config file, for easy transportation and use on other systems. WARNING Although the features to create and use bundles are intended to make it easier to run SPEC CPU2006, the tester remains responsible for compliance with the run rules And, of course, both the creators and the users of bundles are responsible for compliance with any applicable software licenses. Parallel builds on Windows too Users of Microsoft Windows systems can now use multiple processors to do parallel builds, by setting makeflags for example. This feature has worked with SPEC CPU testing on Unix for many years what s new in CPU2006 V1 1 is the ability to use it on Windows Note that requesting a parallel build with makeflags - j N causes multiple processors to be used at build time It has no effect on whether multiple processors are used at run time, and so does not affect how you report on parallelism. Unexpected rebuilds reduced In V1 0, the tools were much more likely to trigger automatic rebuilds of the benchmark binaries than they are in V1 1, because unrecognized options e g a mis-spelled CXXOPTIMZIE or a user-defined option such as MYOPTS would be passed to specmake and the tools had no way to know what specmake did with such options Now, the tools record only what is actually used by specmake plus the options that are sent to the shell e g via fdopre0 With this more careful recording, config file changes do not trigger rebuilds unless they actually affect the generated binary. Running Benchmarks. Parallel Setup For reportable runs, substantial time may be required during the setup phase, as the tools write run directories for every copy, and validate that benchmark binarie s get the correct answers for the non-timed test train workloads SPEC CPU2006 V1 1 provides several new features to allow these operations to complete more quickly by optionally doing more operations in parallel parallelsetup paralleltest parallelsetuptype parallelsetupprefork benchpostsetup and postsetup. During testing of V1 1, a very large server with over 600 hwthreads was observed to complete the binary validation phase about 8x faster using paralleltest, and the ref directory setup phase more than 2x faster with parallelsetup The net time saved on this very large server was more than 10 hours. Your mileage may vary. The effects of these options are much less pronounced on small servers. The effects are strongly affected by your disk setup. Asking your disk system to do more than it can handle may make your setup phase slower, not faster For example, asking a disk with a single actuator arm to do parallel setup of 30 copies may cause the disk to spend most of its time seeking. When cons idering your disk layout options, bear in mind that the run rules require use of a single file system. Note that these setup features parallelsetup paralleltest parallelsetuptype and parallelsetupprefork control parallelism during the preparation phase for running the benchmarks, not the actual runs Therefore, they have no effect on the setting of the report field. Auto Parallel Yes No. Per-benchmark basepeak and copies - behavior change If you select basepeak 1 for an individual benchmark, the number of copies in peak will be forced to be the same as in base Note that in SPEC CPU2006 V1 0, you could set basepeak for a benchmark, and still change the number of copies in peak this was deemed to be an error If you want to run the same tuning in both base and peak, while changing the number of copies, you will need to build two binaries with the same compiler switches. Per-benchmark bind The bind list can now differ on a per-benchmark basis in peak Allowing this difference was viewed as a con venience, since the run rules already allow the submit command to differ on a per-benchmark basis in peak. The PreENV config file option allows setting of environment variables prior to the exectuion of runspec. Run-time monitoring The monitor hooks have been a little-known feature of the SPEC CPU toolset for many years They were first described in the ACM SIGARCH article SPEC CPU2006 Benchmark Tools and are now further described in The monitor hooks allow advanced users to instrument the suite in a variety of ways SPEC can provide only limited support for their use if your monitors break files or processes that the suite expects to find, you should be prepared to do significant diagnostic work on your own. SPECUSERNUM no longer recognized The field SPECUSERNUM was deprecated in V1 0 of SPEC CPU2006, in favor of SPECOPYNUM SPECUSERNUM is no longer recognized in V1 1 No error message is printed If you still have user numbers lurking in your config file, make them into copy numbers, please. Auto Parallel - changes to handle common cases If benchmarks are automatically optimized to use multiple threads, cores, and or chips at run time, the tester needs to indicate this in the report as. Auto Parallel Yes. For V1 0, it was sometimes difficult to ensure that reports were accurate, in part because there can be multiple sources of run-time parallelism as described in the run rules. With SPEC CPU2006 V1 1, the V1 0 method of filling out the above field, swautoparallel has been retired, and three new features have been introduced to better reflect these sources of parallelism. When writing a flags file, the parallel flag attribute should be set for compiler flags that cause binaries to be multi-threade d Then, when binaries that use those flags are run, the report type will be listed as Auto Parallel Yes. The config file field swparallelother should be set when there are other non-compiler sources of parallelism. A rawfile-only field, swparalleldefeat can be used to indicate that, despite any other settings, a tested system has been forced to run in a single-threaded mode for example, by removing all but one processor. The intent is that the most common case will be handled automaticallymonly, the SPEC tools will use i to automatically determine whether the run is parallel For this case, ii and iii will not be needed. If your source of parallelism is not visible to the SPEC toolset, you can set ii. Rarely, you can take a software stack which appears to be parallel, but explain with iii why it was not. Overall, the setting of the Auto Parallel field in reports can be thought of as if it were derived from this logic. or for the benefit of those readers who think in FORTRAN, it is as if the de rivation were. CSV format updated - If you populate spreadsheets from your runs, you probably shouldn t be doing cut paste of text files you ll get more accurate data by using --outputformat csv The V1 1 CSV output now has a format that includes much more of the information in the other reports All runs times are now included, and the selected run times are listed separately The flags used are also included Although details of the new features are not shown in the documentation, you should explore them, by taking the new CSV out for a test drive It is hoped that you will find the V1 1 format more complete and more useful. Flag reporting - multiple files supported, flag order preserved, report readability There are several changes to reporting on compiler flags. You can now format a single result using multiple flags files This feature is intended to make it easier for multiple results to share what should be shared, while separating what should be separated Common elements such as a certa in version of a compiler can be placed into one flags file, while the elements that differ from one system to another such as platform notes can be maintained separately Suggestions on use of this feature can be found in. The flag reporter now does a better job of reporting flags in the same order in which they appeared on the command line. Flag reporting has been re-organized in an attempt to improve readability. Within the Optimization Flags section, the report no longer prints phrases such as Fortran benchmarks except as noted below because readers may not remember which benchmarks are in Fortran Instead, all the Fortran benchmarks are enumerated, and if some use the same flags as others, that fact is noted in line, rather than at the top of the list. Within the Portability Flags section, benchmarks appear in order by number, rather than ordered by language. When the reporter detects that base and peak are sufficiently different from each other e g different compilers, or different porta bility options the flags report is ordered to put all the base information first, then all the peak information - for example. Graphs cleaned up. Graphs have been changed to reduce the amount of shading, and to reduce painting of other pixels that were not essential to the data being presented with a tip of the hat to Professor Tufte s notion of reducing chartjunk , or apologies, depending on the reader s opinion of the change. Report names have changed. In CPU2006 V1 0, final reports had names of the form. for example, and so forth The form of the file names has changed to now be. for example. There are two reasons for this change. For CPU2006, all reportable runs use a workload named ref , but this is not necessarily true for other benchmarks that use the same toolset Designating the workload in the file name reduces possible ambiguity. If you select the test or train workloads with the --size switch , output files for V1 0 were already tagged with the workload designator this change causes r ef to match the other two. Note For V1 0, a reportable run would generate three files and For V1 1, for a reportable run, you will see only You won t see or unless you say --size test or --size train in your runspec command. Seconds are reported with more digits. Background For certain values, the SPEC tools print 3 significant digits This is intentional For example, if one system has a SPECintrate2006 performance of 1234 456 and another has a SPECintrate2006 performance of 1229 987, it is arguable that the performance of these systems is not materially different Given the reality of run-to-run variation which is, sometimes, on the order of 1 , it makes sense to report both systems SPECintrate2006 as 1230.Although there is agreement that it is acceptable to round SPEC s computed metrics to 3 significant digits, it has been noted that the argument is weaker for rounding of original observations In particular, if we wish to acknowledge the reality of run to run variation, then it seems reas onable to report a time of 1234 456 seconds using an integral number of seconds 1234 , rather than rounding to the three significant digits, which in this case would be rounding to the nearest 10 seconds 1230.Change made Ever since the release of V1 0 of SPEC CPU2006, results posted on SPEC s web site such as the HTML, PDF, and text formats have used 3 significant digits for computed metrics, and seconds larger than 1000 have been reported as an integral number of seconds As of V1 1, reports produced on your own test systems now behave the same way. The Submission Check report is now automatically included in the outputformat list when using rawformat This change was made because the typical use of rawformat is to create final submission quality reports Even if you don t plan to submit your result to SPEC, the checks that are done by Submission Check can help you to create reports that are more complete and more readable. The testdate is now automatically set from the system clock, and y ou should not set it yourself. New Utilities Features. Convert to Development In order to assist with compliance with the run rules so that results are meaningful and comparable , the SPEC CPU tools perform various checks to ensure that benchmark code, workloads, and tools match the original distribution Sometimes, though, researchers or developers may want to work in an environment without these checks, for example, when modifying code to add performance instrumentation. Prior to V1 1, doing so typically required that you abandon the tools With V1 1, you now have another choice you can continue using the SPEC supplied toolset in a development sandbox, via the converttodevelopment utility. Dump alternative source dumpsrcalt is a utility which shows you the content of. The index utility remains UNSUPPORTED, but is now documented for the first time. Make alternative source makesrcalt is a utility which is used to create packages with newly developed alternative sources This utility is ehanced in, and is documented for the first time in, V1 1.ogo top If you type ogo without any parameters, or if you type ogo top the command sets your current directory to GO instead of to SPEC. The portprogress utility is documented now. The specrxp utility validates flags files It is called automatically, or you can call it directly if you wish. SPECspeed metrics from SPECrate test Using rawformat, you can now convert a 1-copy SPECrate result to a SPECspeed result. Other New and Changed Tools Features. Benchmark lists and sets Two formerly undocumented features are now documented your config file can reference benchmark lists and sets Set references use the various bset files that are found SPEC benchspec CPU2006 or SPEC benchspec CPU2006 If you are a user who already has noticed this feature, please note that the definitions of the bsets have changed, and the number of bsets has been reduced. Debug logs Failed runs now leave behind additional detail, in files such as Temporary files are also left behind after a failed run If you are managing disk space on a tight budget, you ll need to adjust your cleaning methods. Keeping temporaries If you are having trouble debugging your test setup for example, if your new submit command or paralleltest option is failing , you may want to try the new keeptmp feature When this option is set, the above-mentioned debug log is kept, along with the various temporary files that it mentions. If you leave keeptmp at its default setting, temporary files will be automatically deleted after a successful run If you are managing disk space on a tight budget, and keeping temporaries, you ll almost certainly need to adjust your cleaning methods. submit lines continued It is now possible to append a numeral to submit lines, to continue your submit commands over several lines This feature is intended to improve the readability of your config file when using the submit feature. Submit notes The tools will now automatically insert a section with notes on your su bmit command for runs that use submit You can customize the section. Trailing spaces are now stripped in config files, unless preceded by a backslash, as described in the section on whitespace. Documentation Updates. Documentation has been added for the new features mentioned in this document Most of the changes are linked from the descriptions above A few items might not be immediately obvious from the above links, and are called out here. A new chapter About Alternate Sources was added. A new section on automatic rebuilds suggests a way to test whether proposed changes would force a rebuild without actually doing the build. More examples are provided for how to specify a bind list, including use of a here document. Explain that you are allowed to change the feedback options and show how to find out the default options Provide a couple of examples of fdo modification. The discussion of free form notes for readers has been substantially expanded. The documentation now tells you what happens wit h macros that aren t defined if you try to use them. All options that affect runspec are described together In V1 0, there were two tables, one for the options that could be mentioned either on the command line or in the config file, and a separate table for options that can only be mentioned in a config file. A sidebar about quoting was added, to try to help reduce confusion when you are trying to ensure that variables are interpreted by the correct software. The documentation of log files now suggests some useful search strings that can help you as you try to find your way through a log. The documentation of submit was rewritten and expanded. Flag file types have been clarified, using an example that points to the three files for result 00001, as posted at. A complete example is provided to show how you can edit a flags file and use rawformat to incorporate it. A Recommended Practices section has been added. The discussions of replacement of example text - both example and exreplacement - ha s been considerably expanded to explain the difference between the two, and examples of their use are shown. The description of directory sharing via outputroot now starts with a simple summary of the steps. More details are given about --review. The documentation now describes the run order for reportable runs. The output format subcheck is explained. The description of --update now explains that additional items might be updated, not just your flags files. Updated Feature Index. These user-visible features are new, updated, or newly documented for SPEC CPU2006 V1 1.To compile SPEC CPU2006 benchmark suite for SimpleScalar based simulators. More generically, compile SPEC CPU2006 suite for Alpha-OSF based systems. Possible Solutionspile applications on a system which is Alpha-dec-OSF and use the binary AS IS for SimpleScalar However c code of SPEC 2K6 seems quite complex which are hard to compile with older version of glibc This means that one requires not just a system with Alpha-dec-OSF but al l the latest compilers on that system to compile c, c and Fortran source code. Use a cross-compiler, there are many available in Internet, which compiles c, c and Fortran code for alpha-dec-osf Most of the cross compilers are based on gcc. My Approachpiling all the source code on a alpha-dec-osf machine would be ideal However I don t have access to any such machine at the moment so I gave an attempt to compile SPEC 2K6 using a cross-compiler There are two options either build one or use one if someone has already built a cross-compiler for the exact system in which you want to compile the applications. Cross-Compiler Approach. Sreepathi Pai describes a method to build a cross-compiler from gcc, glibc, and Alpha OSF 1 system headers Here is the link to his project page if you wish to repeat the experiment We have build a cross-compiler using his method Here it is. Dan Kegel describes how to build cross-tools for almost any ISA-OS pair here. M5Sim project page also have few cross-compilers and their pre-complied binaries here. One of the latest and best cross-compiler is crosstool-ng which is available here We built a cross-compiler for alpha-linux-gnu system and successfully compiled 27 applications out of 29 from SPEC 2K6 suites However, Alpha-Linux ISA OS generates elf64-alpha format whereas SimpleScalar Alpha-OSF requires ecoff-littlealpha format One can use objcopy utility to translate among those two formats, however, the biggest challenge is system calls implementation in SimpleScalar More about this is in Alpha-Linux Support in SimpleScalar Section. Alpha-Linux Support in SimpleScalar. One of the challenges with current SimpleScalar tool is that it only accepts alpha-osf binaries and it is hard to find out good up-to-date tool-chain for this architecture OS Most systems have Alpha-Linux and an up-to-date tool-chain is also available for this tuple Hashem Hashemi ported SimpleScalar for Alpha-Linux and if you want it, here is the link to his project page Although he doe sn t mention about the changes which he has to make, in order to support alpha-linux, it is not so difficult Look into syscall c, loader c located in target-alpha-linux folder An additional file elf64 c is also added which adds support for elf64 format as oppose to ecoff c which was originally there to support ecoff-littlealpha format. System Requirements for SPEC CPU2006.32-bit system with at least 1 GB of memory.64-bit system with at least 2 GB of memory. At least 8 GB of disk space. Anything less would cause problems and you may end up measuring the speed of your system paging rather than actual benchmarks speed. Installation of SPEC CPU2006.Copy the whole folder called spec-cpu2006 from DVD to your home or destination folder wherever you wish to keep them. In order to install invoke the from. If the installation package is able to identify your architecture and configuration correctly it would return with success. Next step is to source cshrc from the. spec-cpu2006 folder This would load the additional evars which are needed for suite. Multiple Inputs for Same Benchmark. Some benchmarks have multiple inputs For example gcc the GNU C Compiler has 7 different inputs in the form of different data files to be used during execution I believe that it is common practice to select one of the inputs to use with SimpleScalar, although a true SPEC run on a machine requires all of the inputs be run I think That is, results are reported for one input set for gcc in a paper, not for every input set Some people indicate which input set they use by suffixing the benchmark name with the input set name for example, gcc-scilabpilation of SPEC CPU2006.Although you can locate the source code of individual benchmarks from benchspec folder and try to compile each benchmarks manually but that s not the preferred way SPEC also provides few tools to build run the benchmarks on your system and create desired binaries All tools are located in bin folder We will u se those tools to build and run some of the applications. Clean up all the run and build directories if you need to in order to re-claim space. runspec --action scrub all. Build for alpha-linux using the base configuration. runspec --action build --tune base bzip2.Upon successful building, log is created in. result folder and binary in. Run a benchmark for test input. runspec --size test --tune base --noreportable --iterations 1 bzip2.Run a benchmark for full run with reference input. runspec --size ref --noreportable --iterations 1 bzip2.Build all the benchmarks. runspec --size ref all. Execute a reportable run of whole suite. runspec --action validate all. Build, runs and validates all the benchmarks for correct output. SPEC CPU2006 Run on ACALSRV. ACALSRV is a Quad core machine in our lab Each core is two-way SMT and it is 64-bit linux box In order to test its compute power we ran few benchmarks on this machine and compared the timing with a reference machine Base Ref is time taken to run the ap plication on SPEC2K6 prescribed base machine and Base Run Time is time taken to run the application on ACALSRV machine. ACALSRV is approx 14x faster than SPEC2K6 base reference machine. Cross Compilation of SPEC CPU Benchmarks. In order to cross-compile SPEC CPU 2K6 for alpha architecture change the configuration file in config folder Look for CC, CXX and FC flags and supply the correct path of cross-compiler We have following cross-compilers at the moment. alpha-dec-osf4-gcc cross compiles c source codes to alpha-osf binary. alpha-dec-osf4-g77 cross compiles Fortran source codes to alpha-osf binary. For c we don t have any cross compiler at present. Alpha OSF4 ecoff Binaries. If you don t have inputs which you are suppose to purchase from spec corp for the applications then you can t use them You can use the command lines from this page to simulate the spec 2k6 benchmarks. Single Thread Simulation Results. Finally, the experience brings some results too We were able to compile and simulate 12 a pplications 5 INT and 7 FP for single thread using SimpleScalar. Simulator Configurations. Simulation window 100 Million INS. Issue Decode Commit 8 4 6.L1 Cache Size 32 KB 64B word, 4-Way. L2 Cache Size 1 MB 128B word, 8-Way. Base configuration and reference inputs.

No comments:

Post a Comment