Nvidia GPUs för data vetenskap, analytics, och distribuerat lärande med hjälp av Python med Dask

0
131

Nvidia har en ny metod för att lära robotar att manipulera objekt
Med en unik kombination av syntetiska bilder, forskare hittat ett sätt att lättare och mer effektivt utbilda en dator vision algoritm för robotar.

Nvidia har varit mer än en maskinvara företaget under en lång tid. Som Grafikprocessorer är allmänt använt för att köra maskinen lärande arbetsbelastning, maskininlärning och har blivit en viktig prioritering för Nvidia. I sin GTC händelse denna vecka, Nvidia gjort ett antal relaterade punkter, som syftar till att bygga om maskinen lärande och omfatta data vetenskap och analytics.

Nvidia vill “par mjukvara och hårdvara för att leverera utvecklingen i datorkraft som behövs för att omvandla data till insikter och intelligens.” Jensen Huang, Nvidia VD, betonade samarbetet mellan chip-arkitektur, systemutveckling, algoritmer och program.

Också: Salesforce Forskning: Kunskap grafer och maskininlärning för att driva Einstein

Därför, Nvidia är fokuserade på att bygga en GPU utvecklare ekosystem. Enligt Huang, GPU utvecklare ekosystem växer snabbt: antalet utvecklare har vuxit till mer än 1,2 miljoner från 800,000 förra året. Och vad kan du bygga en utvecklare ekosystem på? Programvara med öppen källkod.

Nvidia tillkännagav CUDA-X AI SDK för GPU-Accelererade Data Vetenskap på GTC. Nvidia svartabörshajar CUDA-X AI som en end-to-end-plattform för acceleration av data vetenskap, som täcker många delar av data vetenskap arbetsflöde. Målet är att använda Gpu att parallellisera dessa uppgifter till den grad det är möjligt, vilket leder dem upp.

En viktig del av CUDA-X AI är RAPIDS. FORSEN är en svit av öppen källkod bibliotek för verkställande end-to-end data vetenskap och analytics rörledningarna helt på Grafikprocessorer. Och en viktig del av FORSEN är Dask. Dask är ett open source ramverk vars mål är att direkt skala Python.

Python är ett språk val för de flesta data vetenskap fungerar, kan du se varför Nvidia valde att göra detta till en viktig del av sin strategi. ZDNet hade en Q&a med Dask skapare, Matt Rocklin, som nyligen börjat arbeta för Nvidia.

Skalning Python

Rocklin sade att Dask växte fram ur PyData ekosystem (Pandor, NumPy, Scikit-Lära, Jupyter, etc.). PyData är väl älskad av data forskare, både därför att det är snabbt (oftast skrivet i C/C++) och lätt för icke-experter att använda. Problemet var att PyData i allmänhet inte skala tja, som var en begränsning som dataset storlekar ökat.

Också: Streamlio, ett open-core strömmande data tyg för molnet era

Dask var utformad för att skala den befintliga PyData projekt och föra dem in i parallella beräkningar, utan kräver en total omskrivning. Rocklin började med Dask medan du arbetar på Anaconda Inc (kallas Kontinuum på den tiden), men Dask snabbt växte till att bli ett gemensamt projekt med medarbetare från de flesta stora PyData bibliotek.

a-day-in-the-life-1-1024x410.png

Data vetenskap arbetsbelastning kan det ta ett tag att köra. Accelerera dem är vad Dask handlar om, vilket är anledningen till att det har antagits av Nvidia.

(Bild: Nvidia)

×

a-day-in-the-life-1-1024×410.png

Anaconda har investerats i projektet eftersom de hade många kunder som älskade Pandor, Scikit-Lära och vänner, men kämpade med större datamängder. Rocklin sade att det var helt klart både en gemenskap och ett behov på marknaden för att göra PyData hantera större skalor, men det fanns också många tekniska och sociala utmaningar:

“Vi var tvungna att koppla hål i ekosystemet som saknades på big data-sida. Det fanns ett antal tekniker i the big data utrymme som egentligen inte finns i Python på den tiden: data format som Parkett, Orc, och Avro, system för datalagring som HDFS, GCS, S3, lösningar för distribution som GARN.”

Han gick på för att lägga till det i Python-ekosystem, många av de tekniker som hade lite eller inget stöd, som gör att de inte är verkligen användbart i en prestationsinriktad sammanhang. Dask började fokusera på en enda nod tunga arbetsstation användningsfall. Målet var att skala Python för att alla hylsor av en modern CPU och förlänga storleksgränsen för data från mängden tillgängligt RAM-minne (~100 GB) för att mängden tillgängligt disk (~10TB) på enskilda arbetsstationer.

På den tiden, var detta ses som en sweet-spot för hög produktivitet. Rocklin sade att “Dask var Python-infödda och lätt att arbeta med och massor av grupper som hade Numpy/Pandas/Scikit-lär dig stil problem på denna skala (som de flesta) gillade det.”

Han fortsatte med att lägga, men att människors förmåga att skala ut till större datamängder verkar vara omättlig, så efter ungefär ett år Dask utvidgades till att fungera i en distribuerad databehandling miljö som har mer eller mindre samma skalning egenskaper som ett system som Gnista.

Apache Gnista är en enormt populära open source-plattform för data-vetenskap och lärande, kommersiellt stöd av Databricks. Gnista har stöd i minnet bearbetning och vågar samt via klustring. Problemet med Gnista för många Python-användare är dock att stöd för Python är begränsad, och driftsätta och tuning kluster är inte trivialt.

Också: Diagram data standardisering: Det är bara en graf, vilket gör gravitationella vågor i den verkliga världen

Dask utvecklades för att hantera detta. Så hur gör Dask och Gnista jämföra? Rocklin sade att detta är en fråga som han får ofta, så ofta ett detaljerat svar för detta finns. Takeaway är att Dask är mindre och mer lätt. Dask har färre funktioner än Gnista och är avsett att användas i kombination med andra Python bibliotek.

Dask hjälper till att påskynda det hela data scientist arbetsflöde med Grafikprocessorer

Nyligen, Rocklin gick Nvidia för att hjälpa till att skala ut FORSAR med Dask. Han konstaterade att Nvidia hade redan hållit på med detta ett tag, men ville ha mer eldkraft bakom Dask ansträngning:

“NVIDIA har en stödjande spelare i open source ekosystemet nyligen, så jag var upphetsad om möjligheten. Med FORSAR, NVIDIA vill förlänga framgång av GPU utanför grafik och djupt lärande till den fullständiga uppgifter vetenskap erfarenhet. Detta innebär att bygga GPU-accelererade bibliotek för en bredare uppsättning av uppgifter.”

nvidia-t4-gpu.jpg

Nvidias T4 GPU. Snabbt som det kan vara, dock utan rätt programvara stack det kommer inte att hjälpa dig mycket.

(Bild: Nvidia)

×

nvidia-t4-gpu.jpg

Det planerade resultatet är att kunna accelerera hela data scientist arbetsflöde, inte bara den slutliga utbildningen och prognos delar när djup lärande är inblandade. Traditionella maskinlärande algoritmer, dataframe verksamhet som gruppper-samlingar, går, och timeseries manipulation. Data förtäring som CSV-och mjukvara. Och array design som image bearbetning och diagram analytics:

“När jag först hörde talas om detta blev jag ganska skeptisk. Jag hade alltid tyckt att om Grafikprocessorer som är bra bara för beräkningar som var mycket vanlig och beräkna intensiv, som matrix multiplicerar att hända inom djupt lärande.

Men när jag såg att NVIDIA hade byggt en CSV-program (en mycket oregelbunden beräkning) som var en fullständig 20x snabbare än Pandor standard jag var såld. Prestanda nummer kommer ut av dessa maskiner är ganska fantastisk.”

Rocklin sa att idag RAPIDS använder Dask (och MPI) att skala några av dessa bibliotek till flera Grafikprocessorer och flera noder. På samma sätt som Dask kan hantera många Pandor dataframes över ett distribuerat kluster av Processorer det kan också hantera många GPU-accelererade Pandor dataframes över ett distribuerat kluster av Grafikprocessorer. Detta slutar upp att vara enklare än man kan förvänta sig av två skäl, han gick med på att lägga till.

För det första, eftersom Dask var utformad för att parallellisera runt andra bibliotek, så det hanterar saker som lastbalansering och motståndskraft, men inte ställer några särskilda beräkningssystem, som passar NVIDIA behov, eftersom det är önskan att definiera sin egen nod beräkning.

För det andra, Dask redan har algoritmer som fungerar bra för Numpy, Pandor, Scikit-Lära, och vänner, och så många av dem fungerar out-of-the-box för motsvarande RAPIDS bibliotek, som en kopia av dessa Api: er.

Distribuerade maskininlärning göra och inte göra

Men kan det verkligen vara så lätt? Nyligen, Viacheslav Kovalevskyi, teknisk ledare på Google Cloud AI, varnade för användningen av fördelningen inte är absolut nödvändigt. Vi undrade vad Rocklin syn på detta är, och vad han ser som de största utmaningar och möjligheter för distribuerat lärande går framåt.

Dessutom: För CockroachDB, transaktioner först, sedan analytics är en feature, inte en bugg

Rocklin påpekade att design och effektivt i detta utrymme fortfarande kräver en hel del expertis. Visst finns det många maskininlärning problem, liksom parametern servrar som används i djupt lärande program, som du kan drabbas av en enorm prestanda straff om du går ut utan att vara mycket försiktig.

distributeddlfairytalezone.png

“Fairytale zone”: att bara kasta mer hårdvara på problemet behöver nödvändigtvis inte göra maskininlärning snabbare. Det beror på den typ av problem.

(Bild: Viacheslav Kovalevskyi)

×

distributeddlfairytalezone.png

Han tillade att det är mycket verkliga mänskliga och administrativa kostnader för att använda ett kluster. Kluster är komplexa, vanligtvis hanteras av ett annat lag utanför av data vetenskap, de är svåra att felsöka, och i allmänhet plats vägspärrar mellan analytiker och insikt.

Enda stora maskiner är mycket produktiva, Rocklin tycker, både från en performance/hårdvara perspektiv och även ur ett mänskliga/administrativa hinder perspektiv. Om du kan lösa dina problem på ett icke-distribuerat system så är nästan alltid det rätta valet:

“Men, Maskinen Lärande är en bred term dessa dagar. Från en datoriserad perspektiv, maskininlärning och har en hel del utbud. Vissa saker fungerar bra för vissa problem, andra inte. Det är svårt att göra filt uttalanden.

Det finns massor av problem där skalning ut är mycket naturligt, och ger nästan ingen prestandaförlust. Det finns kritiska tillämpningar i vårt samhälle som verkligen kräver stora skalning för att göra framsteg (tror genomik, klimatförändringar, imaging). Idealiskt verktyg vi använder på små/medelstora data på en enda maskin kan vara samma verktyg som vi använder på tusen-nod kluster.”

Relaterade Ämnen:

Öppen Källkod

Digital Omvandling

CXO

Sakernas Internet

Innovation

Affärssystem