Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 49 reacties

Tilera introduceert vandaag de Tile64, een processor met 64 cores. Volgens het bedrijf liggen de prestaties van de cpu tien keer zo hoog als een Intel dualcore Xeon bij een lager energieverbruik.

Tile64De Tile64 is ontworpen voor embedded systemen zoals netwerkapparatuur en videostreamingservers. Tilera heeft naar eigen zeggen al een dozijn klanten, waaronder 3com en Toplayer, die de cpu in netwerk- en multimedia-apparatuur gaat integreren. 'We hebben deze architectuur ontworpen omdat bestaande multicore-technologieën maar schaalbaar zijn tot een handvol cores' , aldus Devesh Garg, topman van Tilera. Volgens het bedrijf vormen 64 cores nog maar het begin, de roadmap bevat plannen voor varianten met 36 cores en 120 cores en tegen 2014 zou met de technologie een chip met 1000 cores haalbaar zijn.

Het startende bedrijf, opgericht in 2004, heeft de technologie gebaseerd op de mesh-architectuur van MIT-onderzoeker Anant Agarwal, die voor zijn RAW-project miljoenen dollars steun ontving van Darpa, het onderzoeksdepartement van de Amerikaanse defensie. Door de mesh-multicoretechnologie als uitgangspunt te nemen is Tilera naar eigen zeggen verantwoordelijk voor de eerste significante ontwikkeling op het gebied van chiparchitectuur in tien jaar.

Het bijzondere van de Tile64 is dat deze geen bus bezit, maar dat deze vervangen is door een communicatieschakelaar op elke core. Door de processors in een grid op de chip te plaatsen, te vergelijken met de plattegrond van een moderne stad, ontstaat een efficiënt tweedimensionaal verkeerssysteem, aldus Tilera. Het bedrijf verwijst naar zijn grid-architectuur onder de noemer intelligent Mesh, of iMesh. De oplossing van het - toevallig? - 64 werknemers tellende bedrijfje lijkt op de 80-core prototype-cpu die Intel in februari van dit jaar onthulde.

Elk van de 64 kernen van de Tile64 is in staat zijn eigen besturingssysteem te draaien. Iedere core vormt bovendien een volledige, general-purpose processor die voorzien is van L1, L2 en gedistribueerde L3-cache. De cores maken onderdeel uit van een iMesh-netwerk, dat volgens het bedrijf zorgt voor snelle communicatie tussen de cores, het geheugen en de I/O.

Om kosten en energieverbruik zo laag mogelijk te houden bevat de Tile64 vier ddr2-geheugencontrollers en tal van I/O-interfaces zoals twee keer 10 Gbps XAUI, twee maal 10Gbps PCIe, twee keer 1Gbps Ethernet Rgmii en een programmeerbare I/O-interface voor ondersteuning van compactflash en diskdrives.

Tile64 overview
Moderatie-faq Wijzig weergave

Reacties (49)

Ik weet niet hoor, maar dit hele "core stacking" gebeuren lijkt me een beetje "over the top".
Natuurlijk kan je wel veel reken kracht er bij krijgen om deze manier, maar ik vind wel dat je zo heel veel redundantie produceert in je cores, en qua "techniek" verbetert er niks. (de cores zelf worden niet sneller)
Het is natuurlijk wel makkelijk en goedkoop om gewoon telkens de hoeveelheid cores te verdubellen, maar de echte snelheid van je processor word zo niks aan gedaan. Als je echter wel een verbetering in snelheid heb, dan krijg je dus wel 64x zoveel er voor terug.
Voor de comsument word het er ook niet duidelijker op, en de foutmarge word ook steeds hoger.

De enigste echte winst zou je behalen met een 3d core, waar je ipv de cores 2d te stacken, ze een 3d memory access geven.
Probleem is wel hitte afvoer.
Qua ruimte scheelt het wel, en kan je dus meer cores kwijt op een kleiner oppervlak ( ipv 8x8 cores, 4x4x4 dus.) , en dus meer cores, of meer "shared" ram wat dus ook weer snelheid geeft, en stroom verbruik omlaag kan halen, tevens verklein je de afstand tussen iedere core en het ram, dus heb je snellere access times.

Hitte is echter het grootste probleem, en de middelste cores zouden simpelweg gefrituurd worden met het huidige stroom verbruik, en waarschijnlijk een gat smelten in je mainboard.

[Reactie gewijzigd door bbr op 20 augustus 2007 17:09]

Het is natuurlijk wel makkelijk en goedkoop om gewoon telkens de hoeveelheid cores te verdubellen, maar de echte snelheid van je processor word zo niks aan gedaan. Als je echter wel een verbetering in snelheid heb, dan krijg je dus wel 64x zoveel er voor terug.
Overal spreken ze dat dit de manier van de toekomst wordt om nog aan rekenkracht te winnen. Veel meer kleiner maken en sneller zal niet meer gaan. De natuurwetten komen roet in het eten gooien. Hoe lang draait men al niet rond de 3GHz of tegenwoordig zelfs er al onder. Al meer dan vijf jaar... Tien jaar terug ging de processorsnelheid elke drie maanden met 200MC omhoog (bij wijze van spreken, ken de exacte getallen niet). Waarom zit men dan nu niet op 5GHz ofzo? Simpelweg omdat men de vrijgekomen warmte niet kan afvoeren, omdat je problemen krijgt met looptijden, interferrentie enz... Dus de oplossing is een betere verwerking van de instructies (wat men de laatste jaren doet, betere voorspellingsalgoritmes enz) ofwel gewoon uitbreiden in het aantal cores zodat de totale rekenkracht groter wordt. Maar dit vraagt (zoals al zo dikwijls is aangehaald) een heel nieuwe manier van programmeren waar nog niet veel mensen erg wijs uit zijn geraakt.

En daarbij, als je een constant wederkerend algoritme hebt zoals bij compressie ofzo (of vergis ik mij nu?) dan kunnen meerdere cores zeker handig zijn, als je ze in feite "in serie" schakelt.
En daarbij, als je een constant wederkerend algoritme hebt zoals bij compressie ofzo (of vergis ik mij nu?) dan kunnen meerdere cores zeker handig zijn, als je ze in feite "in serie" schakelt.
Voor bepaalde compressie-methoden heb je een aantal opeenvolgende stappen en dan is het handig om die in serie te schakelen, mits ze in de opeenvolgende stappen ongeveer een vergelijkbare hoeveelheid rekenwerk hebben, anders staan de stappen op elkaar te wachten.
Je kunt je algoritme echter niet oneindig op blijven splitsen in kleinere opeenvolgende stappen, dus op een gegeven moment haal je geen winst meer door de stappen achter elkaar te zetten.
Het kan echter wel zo zijn dat je dingen parallel kunt doen, omdat die data niets met elkaar te maken heeft.
Denk bijvoorbeeld aan het even en oneven frame van interlaced video. De enige overeenkomst kan zijn dat de richtingsvectoren van bewegende objecten bij beide gelijk is.
Of een stukje video van 0 - 1 minuut en een stukje van 1 - 2 minuut enz.
Zo ook met files comprimeren.
a.txt heeft niets met b.txt te maken, behalve als ze mischien gelijk zijn. Die kun je dus tegelijk comprimeren (mits grootte een beetje vergelijkbaar).
Je kunt bijv ook testen in 1 of meer threads welke files gelijk zijn, zodat je dat weer scheelt in de compressie en tegelijk ook 2 files in gaan pakken, of hetzelfde fragment maar dan met een ander woordenboek.

Oftewel je kunt winst halen met compressie in de lengte maar ook in de breedte. (serieel en parallel)
Ik weet niet hoor, maar dit hele "core stacking" gebeuren lijkt me een beetje "over the top".
Natuurlijk kan je wel veel reken kracht er bij krijgen om deze manier, maar ik vind wel dat je zo heel veel redundantie produceert in je cores, en qua "techniek" verbetert er niks. (de cores zelf worden niet sneller)
Bij een aantal processen is meer rekenkracht wenselijk, maar tegelijk is het ook best wel mogelijk om het rekenwerk in een hoop kleine stapjes onder te verdelen.
Denk bijvoorbeeld aan een video-compressor.
Voor video-doeleinden kan dat heel nuttig zijn, omdat het vrijwel altijd niet erg is dat het beeld veel later op het scherm verschijnt dan dat het van het medium is gelezen of andersom bij een camera of videorecorder dat het ook niet erg is wanneer de stroom data uiteindelijk een aantal sec achter loopt op de werkelijke opname.
Voor die toepassingen waar live registratie wel van belang is, is energieverbruik vaak minder een issue.
Kortom, prima geschikt om in huis-tuin-en-keuken toepassingen gebruikt te worden (mits prijs interessant natuurlijk), maar ook in diverse netwerkproducten en andere toepassingen waarbij de taken makkelijk te verdelen zijn. (bijv. compressie of zoekresultaten).
Hitte is echter het grootste probleem, en de middelste cores zouden simpelweg gefrituurd worden met het huidige stroom verbruik, en waarschijnlijk een gat smelten in je mainboard.
Je kan er dan bijvoorbeeld leidinkjes doorheen leggen waar je een koelvloeistof doorheen pompt. Het ontwerpen van zo'n ding wordt dan wel diect veel lastiger, maar efficientie heeft zijn prijs...
Je kan er dan bijvoorbeeld leidinkjes doorheen leggen waar je een koelvloeistof doorheen pompt. Het ontwerpen van zo'n ding wordt dan wel diect veel lastiger, maar efficientie heeft zijn prijs...
Vast wel ja 8)7
Heb je al eens ooit je proc doorgezaagd? Zo niet, zeker eens doen en dan eens kijken hoeveel plaats je hebt voor "leidinkjes". In zo een core spreken we niet meer van milimeters, maar van micro- en nanometers. Laat staan dat die leidinkjes nog te realiseren zijn met weet-ik-veel wat, welke viscositeit heb je dan niet nodig voor je vloeistof, ontiechelijk klein!! Bekijk eens een drupje zéér dunne olie voor de modelbouw ofzo, dat zijn al druppels van een halve milimeter ofzo. Dat is gewoon 2% van de breedte van je hele core!!
Uhm, houdt dat nou in dat je als programmeur van een applicatie die uit een enkele thread bestaat, rekening moet houden met de uitvoersnelheid van een enkele core ? Of is er ook een abstractielaag die er voor zorgt dat de ouderwetse programmeur geen rekening hoeft te houden met multithread programming ?
ik denk dat programmeurs sowieso tegenwoordig wel rekening willen houden met multithreaded programeren. Intel en AMD hebben onlangs ook speciale tools uitgebracht die de programmeur helpen met het optimalizeren van hun code hiervoor.

toegegeven, het heeft geen enkel nut zoiets als solitair multithreaded te schrijven, maar er zijn net zoveel toepassingen waar het wel degelijk nut heeft. Games zijn maar een klein voorbeeld.
De basis is natuurlijk altijd de snelheid van een enkele core. Hoe eenvoudig een lineare opdracht ook is hij kan niet sneller dan enkel speed draaien. (hoe noem je een berekening waarvan voorgaande waardes herbruikt worden maw niet parraleliseerbaar).

De truc van deze processoren is dat er dan wel 64x dezelfde berekening tegelijk uitgevoerd kan worden. De programmeurs moeten dus dubbel en dwars rekening gaan houden met de meerdere cores.
Het tegenovergestelde van parallel is serieel. Berekeningen die voorgaande waardes hergebruiken zijn sequentieel en moeten dus serieel uitgevoerd worden.

Zie bijv.:
http://safari.oreilly.com...essentials3-CHP-11-SECT-3
http://www.solarisinterna...hip_Level_Multiprocessing
(hoe noem je een berekening waarvan voorgaande waardes herbruikt worden maw niet parraleliseerbaar).
Atomair of zo dacht ik
Nee, dat is een instructie die je niet op mag splitsen.

Bijvoorbeeld als een bepaald volgnummer wilt weten en met 1 wilt ophogen. Moet je niet hebben dat toevallig op exact hetzelfde moment een tweede thread hetzelfde wilt doen en ze daardoor allebei hetzelfde volgnummer krijgen.
ja, een smp-linux kernel.

als je er maar voor zorgt dat je ten minste 63 processen hebt draaien ;)
goeie genade....

maar ik vraag me toch af of er op een bepaald moment geen congestie optreed binnen z'n mesh netwerk. Voor routers en switches is dit misschien wel leuk (of overkill), en dat is de doelgroep natuurlijk ook, maar betere prestaties tegen minder consumptie tov een Xeon zou de weg naar serverland misschien ook kunnen openbreken. Om nog maar te zwijgen over eventueele supercomputer toepassingen.

Die congestie moet wel onder controlle te houden zijn, omdat ze zelf denken te kunnen schalen tot zo'n 1000 tal cores, maar toch....
De route van een 'node' (core) naar een andere is nooit groter dan 2*√N waarbij N het totaal aantal nodes is, bij een vierkant ontwerp. Bij een ontwerp van 1000 nodes is de route van een chip naar een andere dus nooit groter dan 62 'stappen'. Da's best veel denk ik, maar Tilera denkt vast dat het mogelijk is.

Het zou helemaal geweldig zijn als dat model in 3d uit te voeren valt, dan is het aantal stappen nooit groter dan 3*3√n , maar dat is vast lastig omdat dan het berekenen van de route wel een stuk complexer wordt.
Helaas vermeld het artikel (ook de bron niet) geen informatie over de prestatie van de individuele cores, noch over hoe die 64 cores schalen tov een enkele core. De claim dat he geheel tien keer zoveel presteert als een dualcore Xeon valt dus met een flinke korrel zout te nemen.

De enige referentie die ik kon vinden die ook maar hintte naar een benchmark // spec is dat de chip twee 'broad-cast quality' h.264 HD-streams tegelijk zou kunnen encoden in realtime.

[edit]

Even een paar minuten gezocht op de website van Tilera.

H.264 HD video encode for two streams of 720p @ 30 Fps

192 billion operations per second (32-bit)

3-way VLIW pipeline for instruction level parallelism

192 billion ops/s == 192 GFLOPS
3-way is drie instructies per klok per processor.
Dus 192 miljard delen door 3 en delen door 64 levert 1 miljard.
Dus iedere core loopt op 1GHz.

Al met al vind ik het eigenlijk wel mee vallen. Nu is een GPU minder generiek inzetbaar dan dit, maar een 8800GTX of 2900XT scoort toch al snel 500GFLOPS

[Reactie gewijzigd door kalizec op 20 augustus 2007 16:22]

Al met al vind ik het eigenlijk wel mee vallen
Bedenk wel dat dit product ontwikkeld is voor de embedded markt. Daar gelden hele andere eisen voor. Dergelijke performance, in combinatie met het aantal cores, in combinatie met het lage stroomverbruik is zeer zeker boeiend.
Nu is een GPU minder generiek inzetbaar dan dit, maar een 8800GTX of 2900XT scoort toch al snel 500GFLOPS
Sterker nog, AMD heeft pas geleden een terraflop in a box gepresenteerd, waarbij 1 dualcore opteron samen met 2 ATi GPU's aan het rekenen werd gezet.

maar wederom, dat is niet intressant voor de doelgroep van dit product, de embedded markt zal nooit dergelijk stroomverbruik accepteren, om nog maar te zwijgen over de warmteproductie.

Je argumenten hebben vooral betrekking op de standaard server markt, en daar zijn ze inderdaad scherp, maar dit is een hele andere markt, met hele andere regeltjes. :)
als al die cores een eigen besturingssyusteem kunnend raaien is dat toch wel interesant. je kunt dan volgens mij on the fly een core een bepaalde functie geven. of öpnieuw"oplaten starten. je kunt dan voor elke thread of process een core gebruiken?

vooral in apparaten die een dedicated functie hebben, zoals een switch of router of een videostreaming server is dat natuurlijk erg handig. al naar gelang de inzet verdeel je de cores op een manier die je zelf wilt, of laat je dat door een applicatie zelf bepalen, afhankelijk van bijvoorbeeld het werkelijke verbruik van de machien (statistiek)

10* zo snel als een dual xeon klinkt mooi maar is op zich nog niet zo erg schokkend ? een itanium is toch nog sneller ? of een processor van sun?

ok het is dan een stuk sneller en het verbuik is een stuk lager, maar voor een general purpose werkstation of thuiscomputer schiet je er niet echt mee op, als je geen speciale software gebruikt ide er voor is geschreven
Dan heb je wel heel erg multi-threaded applicaties nodig. Ik denk niet dat al die cores op een kloksnelheid hoger dan 200MHz draaien.
Zoekmachines zijn uw vriend; het blijkt dat ze van 600-1000mHz draaien;(bron Tilera zelf)
wat neerkomt op 192Gflops (32 bit) per 64 cores.
192 billion operations per seconde (32bit) (zoals in je bron staat) is niet 192GFlops, gezien de FL in Flops voor floating point staat. Operations per second is wat dat betreft een heel erg vage indicator voor de snelheid van het ding.
idd, maar 't is dan ook niet bedoeld voor singlethreadminded progs&OSsen zoals op 't x86 platform....

Wel interessant is dat er compleet geen chipset meer aan te pas komt en alles direct op de chip zelf aangebracht is....
Voor meer info kijk hier even:

http://www.tilera.com/products/processors.php

Ziet er naaruit dat het topmodel op 900mhz gaat draaien.. dus 64 x 900mhz ;)
En nog een leuk PDF'je waar wat dieper op deze proc ingegaan wordt:

http://www.tilera.com/pdf/ProBrief_Tile64_Web.pdf
Ruim 57GHz :9~ :9~

Weet wel dat je niet zo moet rekenen met dit soort processors, maar het klinkt wel gaaf :9~
Tilera introduceert vandaag de Tile64, een processor met 64 cores. Volgens het bedrijf liggen de prestaties van de cpu tien keer zo hoog als een Intel dualcore Xeon bij een lager energieverbruik.
Dit lijkt me een geval van appels en peren en vergelijken enzo....

64 cores presteren 10 maal zo goed als een dualcore xeon. Ofwel 10 xeon dualcores (=20 xeon cores) presteren als 64 Tilera cores. Klinkt niet best voor Tilera op moment dat er 64 xeon cores het opnemen tegen 64 tilera cores.... (of desgewenst, het aantal xeon cores dat het energieverbruik van de 64 tilera cores vertegenwoordigt)
Misschien, maar heb je ook hetstukje gelezen "bij een lager energieverbruik"? Er staat niet bij hoeveel lager, maar 20 Xeon cores zal toch zeker 10 keer zoveel verbruiken als 2, dus laat staan 64.

Daarbij is dit één chip, en niet eens zo'n hele grote. Dat is ook een hoop waard in embedded systemen.
Ziet er wel leuk uit, vraag me alleen af of deze cpu wel voor dezelfde niche als de xeon geschikt is.
Steeds meer bedrijfs routers worden uitgerust met inteligente firewalls en anti-virus producten. Om de vaak algemene router/firewall te ontzien wordt het verkeer meestal op basis van OSI level 4 gerouteerd. Echter zou je ook kunnen routeren op de verwachte content van bijvoorbeeld een http call. Denk aan inzet van statische (cache) servers (images, stylesheets), maar ook opsplitsing tussen browser, ajax en soap calls. Dat gebeurt allemaal op OSI level 7, vaak aangeduid met inteligent Quality of Service.

De Tilera CPU zal dan hoogst waarschijnlijk geen multimedia extenties zoals SSE bevatten. Veel processen hebben al die 'extreme' extenties niet nodig en werken vaak ook prima op i386 hardware. In zekere mate zou je kunnen zeggen dat Tilera 64 i386 cores op 1 cpu heeft geplaatst.

Ook zie ik nog wel een markt voor database toepassingen waarbij elke backend zijn eigen core toegewezen krijgt.
De Tilera CPU zal dan hoogst waarschijnlijk geen multimedia extenties zoals SSE bevatten.
Wat bij een x86 CPU 'multimedia extensies' genoemd worden kunnen in een ander PCU design gewoon standaard voorzien zijn.

Ik begrijp niet waarom men steeds een x86 CPU als referentie neemt voor andere designs. Als je een beetje op de hoogte bent van die dingen dan weet je dat een x86 CPU alles behalve een voorbeeld van goed en efficient design is en dat je vandaag de dag weinig moeite moet doen om iets te ontwerpen dat 1) stukken sneller en efficienter is en 2) een veel lager verbruik heeft.

En dan hoor ik je al zeggen "waarom is het er dan niet", wel simpel, omdat er geen markt voor is.
"De Tile64 is ontworpen voor embedded systemen zoals netwerkapparatuur en videostreamingservers."
dit is leuk voor de overheid maar, aangezien het betaald is door de overheid zal het nooit op de consumenten markt komen.
Er staat toch bij dat 3com en Toplayer onderandere klant is van hun? Dus ja misschien deels overheids gefinancierd echter uiteindelijk zal dit in de professionele markt zeker terecht komen. Dit is daarnaast ook niet interessant voor de thuis gebruiker ivm de doeleindes van deze cpu. Je gaat toch ook geen Niagara kopen omdat je je pr0n wilt downloaden?
dit is leuk voor de overheid maar, aangezien het betaald is door de overheid zal het nooit op de consumenten markt komen.
Het ontwikkelen van Internet is compleet door de Amerikaanse overheid betaald, net zoals dit onderzoek. En internet is toch behoorlijk beschikbaar voor de consumenten markt...

Maar ik denk niet dat het uberhaupt de doelgroep is van dit ding, het is voor embeded producten, en hoewel je die in consumenten toepassingen (telefoons bijvoorbeeld) ook ziet, is er maar weinig wat zoveel computing power nodig hebt als dit chipje kan leveren.
HDTV processors/decoders kunnen anders serieus wat rekencapaciteit gebruiken hoor. En met deze flinke jongen is het waarschijnlijk mogelijk een nog grotere compressie te verkrijgen waardoor je nog meer TV kanalen kan doorstralen op één kanaal met alle voordelen vandien natuurlijk.
Het zou bijvoorbeeld zeer mooi zijn deze jongen rechtstreeks in een TV in te bouwen en dan het inkomende HD signaal onder hoge compressie draadloos de TV in te sturen. Maar goed, dit laatste is tegenwoordig ook al mogelijk, alleen moet er iemand willen om zo een decoder in de TV te steken, daar is niet echt meer een uitdaging aan.
Maar dat compressie verhogen en bandbreedte besparen verhaaltje lijkt me wel perfect haalbaar nu...
ik denk dat je hier eerder aan de andere kant van je tv moet kijken (maw. aan de provider kant) dit is niet echt te speceficeren als hardware voor de consumenten electronica, voor dat soort decoding werk zul je eerder nog CELL processors kunne verwachten,

ik denk dat zo'n 64core ding wellicht niet eens in standaard routers te vinden zal worden hooguit in coreswitches en transits... - (maar das pure speculatie )
Klopt, om diezelfde reden zullen we ook nooit internet thuis krijgen.

Tevens staat er dat het gebaseerd is op iets dat gefinancieerd is door DARPA, niet dat zij dat zelf zijn.
De Tile64 is ontworpen voor embedded systemen zoals netwerkapparatuur en videostreamingservers. Tilera heeft naar eigen zeggen al een dozijn klanten, waaronder 3com en Toplayer, die de cpu in netwerk- en multimedia-apparatuur gaat integreren, zoals 3com en Toplayer.
Wel dus, LEZEN!
ehm dude .... internet heete vroeger darpanet ..

veel technieken worden juist door instanties als defensie ontwikkeld en komen later op een consumentenmarkt

gps, ook een mooi voorbeeld

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True