- Adrian B
- Medlem ●
- Umeå
Hur påverkas Altivec-optimerade program av bytet till Intel-chips?
Även OS X som vi har idag är väl optimerat för Altivec, eller hur? Betyder det att vissa delar av OS X kommer att få sämre prestanda efter bytet?
Jag läste någon som trodde vetenskapliga beräkningar på mac skulle ta stryk av detta eftersom de i hög grad kan utnyttja kraften i Altivec. De som använt G5:or för att bygga superdatorkluster, visst har de utnyttjat kraften i Altivec ganska mycket?
Jag misstänker att dom gör ett stort misstag, det skulle vara bättre tror jag att använda Cell-Processorer, dom har ju riktigt bra prestanda och värmeproblemet skulle inte vara allt för svårt att lösa säkert.(om det finns ett?)
Enda som jag kan tänka mig är att Apple optimerar OSX för SSE...
Jag misstänker att dom gör ett stort misstag, det skulle vara bättre tror jag att använda Cell-Processorer, dom har ju riktigt bra prestanda och värmeproblemet skulle inte vara allt för svårt att lösa säkert.(om det finns ett?)
Enda som jag kan tänka mig är att Apple optimerar OSX för SSE...
Utan att på något vis vara expert inom området:
"The Cell processor consists of a general-purpose POWERPC processor core connected to eight special-purpose DSP cores" (se http://arstechnica.com/articles/paedia/cpu/cell-1.ars). Med en Cell skulle man alltså få en "normal" PPC-kärna på kanske runt 3 GHz, plus åtta enkla kärnor som mest kan liknas vid en DSP. För vissa tunga (läs oftast vetenskapliga) beräkningar, och i miljöer som är väldigt hårt kontrollerade och där applikationerna är likartade (läs PlayStation 3 och spel) kan detta vara en bra lösning. Men på desktop'en, där din dator skall utföra en mängd olika uppgifter, så smäller en CPU med flera fullfjädrade kärnor oftast högre (vilket i sig är intressant då Microsoft's kommande XBox 360 - och Nintendo Revolution? - enligt uppgift skall ha tre symmetriska kärnor, att jämföras med Cell's enda kärna + 8 SIMD-enheter. Vad som är bäst i en spelkonsoll lär väl framtiden utvisa...)
Utan att ha jämfört SIMD-stödet hos PowerPC (AltiVec) och x86 (SSE/SSE2/3DNow/osv) så kan man väl anta att de instruktioner som behövs för att snabba upp OS'et har motsvarigheter på x86, och det *borde* ju i så fall lösas med en recompile i Xcode (om vi nu inte pratar handknackad Altivec-kod). Dock skall ju Rosetta enligt uppgift inte stödja Altivec (se http://www.osnews.com/comment.php?news_id=10769 och http://macslash.org/article.pl?sid=05/06/06/1826222&mode=thread), så PowerPC-only apps kan eventuellt få problem. För oss som sitter på en G3 (iBook 700 i mitt fall) så blir det ju dock ingen större skillnad...
Hmm, hittade följande länk i kommentarerna på OSNews:
"Rewriting AltiVec Instructions" / "Differences Between Instruction Set Architectures"
http://developer.apple.com/documentation/MacOSX/Conceptual/universal_binary/universal_binary_vector/chapter_6_section_3.html#//apple_ref/doc/uid/TP40002217-CH208-253648
Förresten, finns det inte ett AltiVec reference library som faller tillbaka till software emulation på hårdvara utan AltiVec -> G3 och x86? Någon Mac-kodare som vet?
SSE ger ju mycket bättre flyttalsprestanda på x86 än vad de har när SSE inte används (minst den dubbla..), men altivec är nog både bättre och mer avancerat.
Största skillnaden är väl som det tidigare sades bl.a. antalet register i cpun, p4 har bara 8, 64-bitars varianterna 16 men ppc970 32...
Men att diskutera vad som skiljer nu känns lite ointressant. P4 må vara sämre nu, men vad vet vi om det som kommer att erbjudas från Intel sommaren 2006? Och då snackar vi mest processorer till bärbara. Vilka processorer kommer finnas 2007, när resten av datorerna ska byta processor?
Men att diskutera vad som skiljer nu känns lite ointressant. .... Vilka processorer kommer finnas 2007, när resten av datorerna ska byta processor?
<author ducks>
iofs är det ett befogat argument.
men jag kan inte låta bli att dra paralleler till G4'an eller G5'ans unga dagar där man förutspådde allt möjligt fantastiskt om dessa processorers framtid.
man skulle kika i arkiven och se om oss mac-fantaster inte satt och sa samma saker som nu.
<author hides>
:eek:
Altivec - är det inte en teknik som ägs gemensamt av Apple och Motorola? Det borde ju gå att licensiera den till Intel. Men men, vi får väl se.
/hpe
något som jag funderat på: hur många applikationer använder sig egentligen av Altivec stöd?
så som jag kommer ihåg är det främst Quicktime, Itunes, och eventuellt FCP som använder sig av Altivec. (Plus någon plug-in till Photoshop)
Om jag inte har helt fel (vilket inte är helt utan sannolikhet) är det egentligen inte så många applikationer som drar nytta av Altivec.
???
/m
något som jag funderat på: hur många applikationer använder sig egentligen av Altivec stöd?
så som jag kommer ihåg är det främst Quicktime, Itunes, och eventuellt FCP som använder sig av Altivec. (Plus någon plug-in till Photoshop)
Om jag inte har helt fel (vilket inte är helt utan sannolikhet) är det egentligen inte så många applikationer som drar nytta av Altivec.
???
/m
Du har delvis fel. Använt Logic, Peak, Reason, Traktor DJ Studio.... någon gång? Grafiska filter? Det finns många _viktiga_ program som skulle gå som i kola under användning utan altivecstöd, så frågan är viktig.
Du har delvis fel. Använt Logic, Peak, Reason, Traktor DJ Studio.... någon gång? Grafiska filter? Det finns många _viktiga_ program som skulle gå som i kola under användning utan altivecstöd, så frågan är viktig.
oops...
tack för den upplysande rättelsen.
Du har delvis fel. Använt Logic, Peak, Reason, Traktor DJ Studio.... någon gång? Grafiska filter? Det finns många _viktiga_ program som skulle gå som i kola under användning utan altivecstöd, så frågan är viktig.
Det går att flytta över till Intels SIMD.
Men att diskutera vad som skiljer nu känns lite ointressant. P4 må vara sämre nu, men vad vet vi om det som kommer att erbjudas från Intel sommaren 2006? Och då snackar vi mest processorer till bärbara. Vilka processorer kommer finnas 2007, när resten av datorerna ska byta processor?
Det kommer finnas en dualcore pentium-Mobile med 2*2Mb cache. Den kallas (yonha). Det som utmärker pentium mobile är att den är helt utvecklad skild från intels andra ingengörer(de som utvecklade P4an) De killar som skapar mobile versionerna är baserade i Israel. De har skapat banias, Dothan samt nu har de yohna på G. Mobile versionen kännetecknas av en extremt kortpipeline, jämför mot Prescotts med sin extrema långa. Dothan, som har 2mb cache spöar de flesta workstation CPU, i vissa test så utklassar den en Fx-55. och det är vid 2.13ghz. Mobiler versionerna har inte stöd för dualchannel ännu heller, samt att vissa instruktioner inte finns i P-mobile.
Ifall ni har fler frågor så skapa en ny tråd om vilka CPUs Intel kan tänkas släppa, jag kommer gärna förklara det vidare där då. Med tanke på att vissa har kritiserat mina kunskaper om hårdvara, samt mina kunskap om hur CPUern fungerar och vad som skiljer sig mellan versionerna.
Som sagt, jag skapar ingen tråd. Det är upp till er ifall ni vill veta, men jag kommer svara i den ifall ni vill veta.
over and out.
Ifall ni har fler frågor så skapa en ny tråd om vilka CPUs Intel kan tänkas släppa, jag kommer gärna förklara det vidare där då.
Den tråden finns redan. Välkommen med fakta och spekulationer!
Hur påverkas Altivec-optimerade program av bytet till Intel-chips?
Programkod som är optimerad för Altivec, eller G4 och G5 processorerna på det stora hela, kommer inte att kunna emuleras av Rosetta. Tyvärr straffar ju bytet till Intel främst de utvecklare som lagt ner energi och pengar på att verkligen utnyttja G4/G5-processorerna.
http://daringfireball.net/ har rätt bra texter om detta.
Vet någon förrästen om det skulle finnas en möjlighet för Apple att bygga in ett stöd i OSX som automatiskt gjorde så att alla programmen använder sig av AltiVec?
Isf skulle det ju iaf vara bra för G4/G5 användare.
Hur påverkas Altivec-optimerade program av bytet till Intel-chips?
Även OS X som vi har idag är väl optimerat för Altivec, eller hur? Betyder det att vissa delar av OS X kommer att få sämre prestanda efter bytet?
Jag läste någon som trodde vetenskapliga beräkningar på mac skulle ta stryk av detta eftersom de i hög grad kan utnyttja kraften i Altivec. De som använt G5:or för att bygga superdatorkluster, visst har de utnyttjat kraften i Altivec ganska mycket?
Det är inte många applikationer som är AltiVec optimerade. De applikationer som är AltiVec optimerade går att flytta/porta över till Intels SIMD-enhet. Oftast räcker det med att kompilera om koden eftersom AltiVec-anropen sker igenom vecLib.framework. Så det räcker med att vecLib.framework i sig kör asm till Intel SIMD istället. Vilket Apple garanterat redan har fixat.
Övriga applikationer som Apple har som har tillämpat vektorberäkningar tillämpar idag GPUn för detta. Detta pga. att GPUn faktiskt är upp till 5x bättre på vektorberäkningar än en CPU.
Vad gäller AltiVec och Intels SIMD prestanda från mitten av nästa år och fram till 2007... så finns det inget som säger att skillnaden i prestanda skulle bli stor. Det jämnas trolig ut pga. att Intel SIMD kommer att vara högre klockad.
Det hela kommer att återgå till hur Amigan är uppbyggd. CPUn kommer att användas för att skyffla data mellan Fast-RAM och GPUn Chip-RAM samt ev. PPU och ev. Chip-RAM för den coprocessorn. Samt Intels pentium D är dualcore och det är troligt att Apple kommer med Quad (2st dualcore Pentium D), då får man 4 st SIMD-enheter som i sin tur är väldigt högt klockad. Så vektorprestandan kommer troligen bli högre totalt än vad IBM kommer att kunna leverera med PPC 970fx idag.
Visst är altivec vasst främst på flyttal? Någon mer än jag som noterade att prestanda per watt-grafen enbart behandlade heltalsoperationer? Finns något samband?
Jupp, AltiVec är en 128bit vektorenhet för bla. flyttal. Samt, ja, grafen visar antalet integerenheter per watt, och det säger inget om flyttal. Det förklarar endast förhållandet mellan integerenheter och watt. Så det går inte att göra några flyttalsantaganden baserad på den grafen.
Fann detta nyss:
(eller, tråden tidigare men läser nu)
http://www.insidemacgames.com/features/view.php?ID=355
"- SSE3 is way more flexible and feature-rich than Altivec. I don't care what the haters say, that's the truth. In terms of vectorization, SSE will be a better instruction set. There are lots of places were you get the feeling that Altivec should be a good optimization, but you can't find a way to coerce it to do what you want without a lot of effort (and frequently, without making the program _slower_). SSE has wider application. It just does, even without names like "Velocity Engine"."
Så det är nog lugnt.
Plus att det verkar som att man vid mac-ports har tagit koden, tagit bort SSE.. och tja, släppt det. Dvs inte optimerat för altivec. I framtiden kommer ju macversionen få lika optimerad (eventuellt..) kod som windowsversionen.
SSE ger ju mycket bättre flyttalsprestanda på x86 än vad de har när SSE inte används (minst den dubbla..), men altivec är nog både bättre och mer avancerat.
Största skillnaden är väl som det tidigare sades bl.a. antalet register i cpun, p4 har bara 8, 64-bitars varianterna 16 men ppc970 32...
Så mao stämmer inte det översta här, och inte heller det nedre:
"- I'm calling BS on Rosetta. While I'm sure it'll run Office well (specifically, the Must Have With No Viable Alternative Apps), I refuse to believe that it'll be the panacea people at WWDC are already calling it, and shame on everyone for not knowing better. Even if the Intel chips are EMT64s running in longword mode, you get 16 general purpose registers, and must emulate 64 on a PowerPC (96 if you count the Altivec registers).", antingen har opteron 32 då, eller så stog det fel någonstans när jag fick för mig att ppc970 hade 32. Färre på x86 iaf.
Altivec - är det inte en teknik som ägs gemensamt av Apple och Motorola? Det borde ju gå att licensiera den till Intel. Men men, vi får väl se.
/hpe
Verkar ju som att SSE faktiskt var bättre så då finns det väl ingen vits till altivec, mer än för bakåtkompatibilitet.
Vet någon förrästen om det skulle finnas en möjlighet för Apple att bygga in ett stöd i OSX som automatiskt gjorde så att alla programmen använder sig av AltiVec?
Isf skulle det ju iaf vara bra för G4/G5 användare.
Har isf mer med kompilatorn att göra, och för den att lista ut vad man kan optimera för altivec, men jag tror det mest är optimering för hand på områden du VET att du kan få bättre prestanda som gäller.
Visst är altivec vasst främst på flyttal? Någon mer än jag som noterade att prestanda per watt-grafen enbart behandlade heltalsoperationer? Finns något samband?
Gör det säkert, med tanke på att ppc970 inte står sig särskilt bra mot p4an på heltalsinstruktioner men vinner en hel del på flyttal.