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. Je kunt ook een cookievrije versie van de website bezoeken met minder functionaliteit. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , reacties: 26, views: 12.556 •

Een voormalig medewerker van Googles researchtak heeft een methode beschreven om onderzoek naar kunstmatige intelligentie aanzienlijk goedkoper te maken. Zijn computers maken gebruik van gpu-cores om neurale netwerken te bouwen en te trainen.

Met Googles 'kattenproject' dat in het Google X-lab werd uitgevoerd werden zestienduizend cpu-cores ingezet als neuraal netwerk. Via machine learning moest de computercluster een kat in Youtube-filmpjes leren herkennen. Deze op het oog eenvoudige taak vergde zo'n duizend computers die als neuraal netwerk een visuele cortex van menselijke hersenen simuleerden. Volgens een van de toenmalige betrokkenen, het hoofd van het Artificial Intelligence Lab van de Stanford-universiteit Andrew Ng, moet dat efficiënter kunnen: hij bouwde een systeem met gpu's.

Door gebruik te maken van standaard hardware voor hpc-systemen, of zoals in het testsysteem GeForce GTX680-kaarten voor consumentenpc's, wist Ng een systeem te bouwen dat vergelijkbaar presteert als het Google X-systeem van een jaar terug. Hij had er echter slechts drie computers voor nodig, die gezamenlijk slechts ongeveer 20.000 dollar kosten, in plaats van de 1 miljoen die voor Googles systeem nodig was. Het cuda-systeem schaalt zonder problemen: met zestien computers werd een neuraal netwerk gebouwd met elf miljard parameters, terwijl met de drie systemen één miljard parameters gerealiseerd werden. Elke server in de cluster bestaat uit twee quadcore-cpu's, vier GTX680-videokaarten en Infiniband-interconnects.

Ng en zijn team maken gebruik van MVAPICH2: gratis software voor parallelle rekentaken, maar ze hebben extra benodigde software om van gpu's gebruik te maken in C++ geschreven. Ze hebben nog niet besloten of de software eveneens als opensource beschikbaar gesteld wordt. Desalniettemin moet de benadering van machine learning met behulp van standaard hpc-hardware, door de drastische reductie van de kosten, het onderzoek naar kunstmatige intelligentie bereikbaar maken voor meer onderzoekers. Het onderzoek werd maandag tijdens de International Conference on Machine Learning gepresenteerd.

Reacties (26)

Het is prachtig, maar zonder de bijbehorende code heb je niets aan die 12 GPUs. Je bent langer dan een jaar bezig om het from scratch te implementeren.
Volgens mij is de hoofdgedachte van het artikel dus dat ze die code nu dus hebben ;) De vraag is of de code opensource wordt. Zelfs als niet, dan kan hij 'm nog steeds gratis weggeven overigens.
Heb je enig bewijs dat Google telefoongesprekken afluistert? Je uit hier en hieronder wel wilde beschuldigingen, maar bewijs zie ik hiervoor niet. Het lijkt me ook bijzonder onwaarschijnlijk.
Sterker nog de AFM in Nederland heeft Google de maximale boete opgelegd wegens rondrijden met spionageauto's die mobiel alles opnamen "per ongeluk".

Militaire apparatuur die 'per ongeluk' gebruikt werd in de auto's die zogenaamd alleen voor een andere service was.

Maximale boete was 1 miljoen euro overigens. Een lachertje in vergelijking met wat ze opgenomen en hebben.

Dat was dus een aanmoedigingsboete.

Je denkt toch niet dat ze als enige ter wereld een gratis OS verspreiden met als intentie om er niks aan te verdienen?

D'r zitten 5 google recruiters op mijn linked-in. Alle foute mensen die ik ken, die wel heel goed zijn in hun expertise maar waar sociaal iets mis mee is, die werken al eventjes voor google.

Toen 1 ervan me aantal jaar geleden vertelde: "we gaan maps.google opzetten zodat iedereen kan navigeren via google. "If we want to do something then it will happen".

Zijn core expertise: telecommunicatie met name ISDN telefonie :)

De enige businesscase die google heeft IS spionage.
Je moet dan niet naief zijn dat ze dat dan ook niet doen.

p.s. hij verdiende toen al, 10 jaar geleden, meer dan kwart miljoen dollar per jaar. Dat geld moet ergens vandaan komen...

[Reactie gewijzigd door hardwareaddict op 19 juni 2013 16:37]

Offtopic:
Android is open source. Als je het niet vertrouwd mag je de code van mij doornemen (maar anderen hebben dat al lang voor je gedaan).
En volgens mij bedoel je dat Google heeft rondgereden met streetview auto's, en ook toen wifi netwerken heeft vastgelegd, is toen ook hele rel over geweest (terwijl het alleen om mac adressen/BSSIDs en locatie data gaat, niet inhoudelijke data, ze zijn nooit OP netwerken geweest).

Ik ben het een beetje zat aan het worden dat iedereen Google alleen maar bestempeld van slecht doen, vrijwel alles wat ze maken maken ze open source, en als je ECHT wil weten wat ze allemaal over je verzameld hebt, dan kan je dat allemaal in een keer downloaden.

Weet je waar Google geld aan verdient? Advertenties. Weet je waar de privacy bezwaren vandaan komen? Targeted ads, op basis van wat jij (min of meer) hun aan informatie hebt gegeven. Sure, van mij hoeft dat niet zo, maar om dan gelijk te schreeuwen dat ze alle telefoongesprekken afluisteren vind ik gewoon puur doemdenken, en zwartmakerij.

Weet je wie IK niet vertrouw? Microsoft. Wist je dat ze je skydrive proactief scannen op 'unlawful content'? En dat ze alle links crawlen die je in het onlangs verkregen Skype plakt? En noem eens een groot project van Microsoft dat echt open source is (er zijn een paar.. C#'s specificatie is open bijvoorbeeld.. maar daar houd het wel op, .NET is niet open source bijvoorbeeld).

Ik vind het doodzonde dat Google zo word gehaat. Onlangs nog hebben ze het open XMPP-gebaseerd Google Talk protocol vervangen door een closed proprietary Google Hangout protocol, zeggend dat het toch niet op prijs word gesteld dat ze alles opensource maken. Straks gaat Android nog op closed source (niet waarschijnlijk maar stel dat), DAN zou ik me zorgen gaan maken. Nu staan ze toch te veel in het spotlight om zoiets te kunnen flikken.

[Reactie gewijzigd door Alex_dragon op 21 juni 2013 00:45]

Dan installeer je toch gewoon je eigen gecompileerde AOSP/CM/OAKP/PA, is opensource dus dan kan je "makkelijk" zelf checken of er afgeluisterd wordt.
ik heb hier zelfgebouwde firewalls met gestripte linux kernels en alle services gestript. Naar ik aanneem heeft verder bijna niemand dat in Nederland behalve paar bedrijven.

Dan komen ze wel langs hoor als ze niet door je firewall heenkomen.
Over het algemeen ben je dat toch wel met een machine learning probleem dat je met een neuraal netwerk op wilt lossen - je moet het neurale netwerk natuurlijk toch aanpassen op het onderzoek dat moet worden gedaan.

Wat er dus vrijgegeven zou kunnen worden is leuk als basis en je zal ongetwijfeld zaken zoals het backpropagation algorithme kunnen hergebruiken (en die zijn lastig te implementeren, dus dat scheelt al een hoop tijd).

Ik hoop eigenlijk ook dat dit allemaal vrijgegeven kan worden, vaak zijn er met GPU algorithmes nog enorme optimalisaties mogelijk met het juist syncen van de warps en thread grids/blocks. Neurale netwerken zijn dan wel grotendeels gebaseerd op matrix-matrix operaties en het genereren van inverses - en die zijn wel al geoptimaliseerd voor het GPU gedeelte, maar er is ongetwijfeld nog een hoop winst te halen in de hogere lagen van deze algorithmes!
Oud nieuws en het verbaast me dat deze paper geaccepteerd is op ICML. De Theano library ondersteunt al jaren GPU acceleratie en wordt voornamelijk gebruikt voor deep learning algoritmes. Hetzelfde geldt voor Torch.

Daarnaast is het gebruik van off-the-shelft hardware leuk, maar blijkt in de praktijk dat high-end GPU's (e.g., GTX 680) elke paar maanden vervangen moeten wordt als je ze 24/7 op vol vermogen gebruikt.
Toch onwaarschijnlijk dat Andrew Ng (Stanford, Google) in de tijd van Google een budget van 1 miljoen verbruikt voor het oplossen van een klus die "al jaren" ondersteund wordt. Oftewel: Theano en Torch zullen het wel ondersteunen, maar praktisch gezien nog niet werkbaar zijn voor zulke grote neurale netwerken op off-the-shelve hardware.

Ng en zijn team bouwen dit nu wel, inclusief praktische user case. Dat is nieuws en ook wetenschap. Geen fundamentele sprong vooruit, maar wel een van theoretische toepasbaarheid naar brede toepasbaarheid.
Daarnaast is het gebruik van off-the-shelft hardware leuk, maar blijkt in de praktijk dat high-end GPU's (e.g., GTX 680) elke paar maanden vervangen moeten wordt als je ze 24/7 op vol vermogen gebruikt.
Dit lijkt me niet zo'n issue op zichzelf. Als de prijs goed is kan het natuurlijk prima lonen om off the shelf hardware te nemen en elke 6 maanden het hele zootje te vervangen. Als je weet dat het regelmatig gebeurt dat er een GPU sterft, kun je daar in je software ook prima rekening mee houden zodat zodra dat gebeurt die GPU uit geschakeld wordt zonder dat je daar verder last van hebt (afgezien van de vertraging). Een alarmpje naar de admin ns per week hoeveel GPUs nog werken (en welke) en hij kan keurig plannen wanneer er wat vervangen moet worden.
Zolang de kosten per jaar lager zijn en je performance gelijk is is dat een rele oplossing.
Daarnaast is het de vraag waarom de kaarten het zo snel opgeven. Een probleem kan de hitte zijn, gtx680 is een grootverbruiker.

Ondertussen komen er nieuwe gpu's uit, eentje daarvan is GK208, een stuk langzamer, maar per watt een stuk sneller en ze kostten ook een stuk minder.
http://streamcomputing.eu...at-can-do-20-gflops-watt/

De ontwikkeling is er nog voorlopig niet uit.
Morgen op de GPGPU-dag in Amsterdam zullen Ana Balevic & Ivan Dimkovic gaan vertellen hoe zij een neuraal netwerk met CUDA versneld hebben. Zie voor de abstract hier: GPGPU-dag Abstract Digicortex

Dus als je kunstmatige intelligentie en/of GPGPU interessant vindt, kom dan zeker langs.

Deze dag is trouwens georganiseerd door het hierboven vermelde StreamComputing, een Nederlands bedrijf.
Ik gebruik hier Nvidia Tesla's en die zijn wat betrouwbaarder hoor en ja - zoals we allebei gepost hebben - het is heel oud nieuws.

GPU's simuleren ANN's (artificial neural networks) al heel wat jaartjes nu.

De techniek is afgelopen jaren zo hard gegaan, vooral in de AI, dat geen professor noch doctor op universiteiten het heeft weten bij te benen. AI is compleet door bedrijven overgenomen nu daar er praktische toepassingen beginnen te komen die heel serieus zijn. Vaak gebeurt dat achter gesloten deurtjes.

Als het gaat om number crunching dan blazen gpu's alles weg natuurlijk. Software ervoor schrijven is niet eenvoudig hoor - je moet een goede low level programmeur zijn - wat een beetje een uitstervende specialiteit lijkt te zijn...
De nieuwswaarde van dat artikel is de implementatie, niet het gebruik an sich. GPUs zijn goed in snelle matrixvermenigvuldigingen, maar het geheugen is nogal beperkt. Ook zijn ze niet erg snel in geheugen transfers. Het probleem is dus dat de matrices niet in hun geheel in het geheugen passen, en dat over verschillende GPUs partitioneren een grote overhead geeft. Dit aanpakken en evalueren is het onderwerp van het artikel.
Het lijkt er op dat met de schaalvergroting (aantal servers) de efficientie veel meer toeneemt.
1.000.000.000/3 = 333.333.333,33 params per server
11.000.000.000/16 = 687.500.000 params per server
Dat is een verdubbeling per server!
Als je de pdf doorneemt waarnaar verwezen wordt, staat het er volgens mij ook wat anders.

De scaling die hier wordt bedoeld is de hardware scaling, niet de performance van het neurale netwerk zelf.
Ze hebben een cluster gebouwd met behulp van nieuwe technieken.
Dat hebben ze getest op een cluster van 3 systemen en vervolgens zijn ze de hardware gaan schalen, oftewel, gewoon extra hardware toevoegen zonder de basisopzet aan te passen.
Die opschaling werkt blijkbaar erg goed, namelijk 16 systemen zijn zonder problemen behaald.
Dit bewijst dus dat de gekozen opzet van het cluster met alle afhankelijkheden goed functioneert.

Op het cluster van 3 hebben ze een testset van 1 miljard parameters gebruikt en op het cluster van 16 systemen een testset van 11 miljard, maar die waardes zeggen niets over de performance.
(Behalve dat ze zo'n grote set aankunnen)

De schaalbaarheid qua performance is, zoals te verwachten valt, minder dan 100%: een verdubbeling van het aantal GPU's levert niet een verdubbeling op van de performance.
In de 2e grafiek op pagina 7 van de pdf is te zien dat de stap van 1 naar 4 zo'n 350% 'speedup' te zien geeft maar dat de toename steeds verder afzwakt.

Wat wel opgemerkt wordt , is dat die afvlakking kleiner is als er grotere sets worden gebruikt. De schaalbaarheid qua performance is blijkbaar beter als er zwaardere sets worden gebruikt.
Op zich is dat niet zo heel vreemd. Kijk maar naar een gemiddelde review van een nieuwe serie GPU's.
Daar moeten ook de allerzwaarste games tegenaan worden gegooid met de hoogste settings en resoluties omdat er anders geen performanceverschil meer te zien is.
Ook daar geld dat die GPU's wel gevoed moeten blijven worden met werk omdat de extra kracht anders verloren gaat.
met sentisight mobile herken je een kat in minder dan een seconde.
dues snap niet waar die rekenkracht dan voor nodig was.
Het gaat hier niet om katten-herkenning. Het gaat om de simulatie-techniek en de kattenherkenning is een demo.
Dit is oud nieuws.

GPU's worden al heel lang gebruikt voor neurale netwerken.
Hier klopt iets niet. Zestienduizend CPU-cores komt overeen met ongeveer 400 TFLOPS aan rekenkracht, indien gebruik gemaakt wordt van SSE2 (AVX2 in de pas gereleasde Haswell chips verviervoudigt dat). Twaalf GTX 680 kaarten hebben 'slechts' ongeveer 30 TFLOPS aan theoretische rekenkracht.

Dus ofwel komen de taken niet exact overeen, ofwel is de CPU-versie niet naar behoren geoptimaliseerd.
Kleine rekencorrectie voor je:

Een moderne Tesla heeft rond de 2496 cores en levert rond de 1.2 Tflop
dat is de Nvidia K20. de K20X van 1.3 Tflop kun je toch niet in de winkel halen...

Dus 16000 cores is pak hem beet dan 6 tesla's. Dus rond de 7+ Tflop double precision.

Je zit dus rond de factor 50-60 fout :)

die tesla kost rond de 3500 dollar. dus dat is precies rond die 20k dollar waarover gepend wordt door google :)

De moneymath zoals gepresenteerd wordt klopt dus. Alleen rekenen ze daar enkel en alleen op Tesla's natuurlijk. De gamerscards worden er alleen bijgehaald om een voorbeeld te geven natuurlijk. Op het moment dat men dat doet dan kloppen ogenschijnlijk al die berekeningen ineens weer niet.

Ze hebben overigens heel wat capabelere hardware daar hoor in Mountain View (google's hoofdkwartier). Die kost heel wat meer dan $20k :)

Opmerking: op het moment dat je zo'n ANN met een neuraal netwerk simuleert in SINGLE precision kun je 't natuurlijk beter doen met AMD gpu's in OpenCL, want die zijn single precision veel sneller. Paar 2e hands AMD 6990 kaartjes met 3072 cores en dan zit je met 5 kaartjes al aan de 15k cores :)

Wel eerst natuurljk stevig betere koelers op die kaarten monteren dan de stock koelers :)

Liefst houd je de GPU omgeving onder de 30C en de gpu zelf onder de 50C bij zulke gpgpu berekeningen, anders ga je te snel bitflips krijgen.

Zover ik weet werd (weet niet of dat nu nog zo is) in dat datacentrum daar alle apparatuur en de hele omgeving op 19C gehouden.

Op die temperaturen verbruiken cpu's en gpu's dus wel 10% minder stroom...

[Reactie gewijzigd door hardwareaddict op 19 juni 2013 16:49]

Een moderne Tesla heeft rond de 2496 cores en levert rond de 1.2 Tflop
dat is de Nvidia K20. de K20X van 1.3 Tflop kun je toch niet in de winkel halen...

Dus 16000 cores is pak hem beet dan 6 tesla's.
Grandioos fout! De K20 heeft 13 actieve cores, met elk 6 vector-eenheden (FMA) van 32 elementen. Dit alles vermenigvuldigen en voorstellen als zijnde 2496 cores is marketing-onzin.

Haswell-E krijgt 8 cores met elk 2 vector-eenheden (FMA) van 8 elementen, en dat aan 4 keer hogere kloksnelheid.

Dus hoewel de GPU nog wel een paar keer sneller is, hou je 16000 CPUs niet bij met een handvol GPUs.

Hier is dus zeker meer aan de hand, en ik vermoed dat ze bij Google geen gebruik hebben gemaakt van SSE2, laat staan AVX2.
Ze hebben overigens heel wat capabelere hardware daar hoor in Mountain View (google's hoofdkwartier).
Hoef je mij niet te vertellen. Ik werk aan een project voor hen (niet dit).

[Reactie gewijzigd door c0d1f1ed op 20 juni 2013 00:02]

Op dit item kan niet meer gereageerd worden.



Populair:Apple iPhone 6DestinyAssassin's Creed UnityFIFA 15Nexus 6Call of Duty: Advanced WarfareApple WatchWorld of Warcraft: Warlords of Draenor, PC (Windows)Microsoft Xbox OneApple iOS 8

© 1998 - 2014 Tweakers.net B.V. Tweakers is onderdeel van De Persgroep en partner van Computable, Autotrack en Carsom.nl Hosting door True

Beste nieuwssite en prijsvergelijker van het jaar 2013