Microsoft maakt DirectML-acceleratie voor TensorFlow beschikbaar

Microsoft heeft TensorFlow-DirectML voor Windows 10 en Windows Subsystem for Linux breed beschikbaar gemaakt. Daarmee komt een einde aan de previewperiode voor de TensorFlow-fork, die in juni vorig jaar van start ging.

Met de finalrelease van TensorFlow-DirectML 1.15.5 heeft Microsoft de publieke package van TensorFlow met een DirectML-backend beschikbaar gemaakt. De package komt voort uit een opensourceproject en voor het ontwikkelen van de TensorFlow-fork werkte Microsoft samen met Intel, AMD en Nvidia. De software maakt hardwarematige acceleratie voor het trainen van machinelearningmodellen op Windows en het Windows Subsystem for Linux mogelijk, waarbij de rekenkracht van gpu's die DirectX 12 ondersteunen ingezet kan worden.

Volgens Clarke Rahrig, Senior Program Manager bij de Windows AI Platform-divisie van Microsoft, is het commando 'pip install tensorflow-directml' in een Python-omgeving voldoende om TensorFlow-DirectML de gpu in te laten zetten. Vervolgens zou de api naadloos samen moeten werken met scripts om modellen te trainen.

TensorFlow-DirectML op Windows 10 TensorFlow-DirectML op WSL
Windows 10 Versie 1709, 64-bit (Build 16299 of hoger) Windows 10 Insider Preview, 64-bit (Build 20150 of hoger)
Python x86-64 3.5, 3.6, of 3.7 Python x86-64 3.5, 3.6, of 3.7
  • AMD Radeon R5/R7/R9 2xx-series of nieuwer
  • Intel HD Graphics 5xx of nieuwer
  • NVIDIA GeForce GTX 9xx-series of nieuwer
  • AMD Radeon R5/R7/R9 2xx-series of nieuwer, en 20.20.01.05 WSL-driver
  • Intel HD Graphics 6xx of nieuwer, en 28.20.100.8322 WSL-driver
  • NVIDIA GeForce GTX 9xx-series of nieuwer, en 460.20 WSL-driver
SqueezeNet-model sampletraining in WSL met TensorFlow-DirectML
SqueezeNet-model sampletraining in WSL met TensorFlow-DirectML

Door Olaf van Miltenburg

Nieuwscoördinator

10-09-2021 • 12:54

18

Reacties (18)

18
18
12
4
0
3
Wijzig sortering
Wat wel erg jammer is is dat dit de oude tensorflow versie 1.15 is, dus niet tensorflow 2.3+ waar we nu al op zitten. Ook is de performance van het trainen ongeveer 3x trager dan bij CUDA, volgens deze test van 7 maanden geleden https://youtu.be/046ae2OoINc

Wel heel mooi dan TF hiermee ook met een AMD kaart kan worden gebruikt.
Zou met ROCm toch sowieso al enige tijd moeten kunnen, of werkt dat alleen op linux ?
(zelf niet geprobeerd, voorlopig geeft Nvidia met CUDA nog steeds de beste kansen dat een extern project ook daadwerkelijk snel aan de praat te krijgen is)
idd, jammer dat het niet de nieuwste tensorflow versie ondersteund, maar dat zal in de toekomst wel veranderen mag ik hopen.
Het wordt idd tijd dat niet alleen Nvidia kaarten worden ondersteund. Ik zie idd dat voor AMD ROCm beschikbaar is vor Pytorch(beta) en Tensorflow maar (voorlopig) alleen voor linux.
De software maakt hardwarematige acceleratie voor het trainen van machinelearningmodellen op Windows en het Windows Subsystem for Linux mogelijk,
Is dit weer zo'n extend-geintje, waarmee Microsoft ontwikkelaars wil stimuleren om Linux-software te schrijven die niet op Linux draait?

Als ik dit goed begrijp hebben ze een Linux-api die gebruikt maakt van de Windows API en dus niet op bare metal draait, maar alleen op Hyper-V.
En wat hebben we hieraan?
Wat is de meerwaarde?
Wat mogen we in de toekomst verwachten?
Denk vooral dat op Windows het hardware onafhankelijk is. Meestal werd CUDA van NVidia gebruikt voor het accelereren van dit AI-achtige projecten, en met DirectML ben je afhankelijk van Windows, inplaats van een stuk NVidia hardware. Ofschoon het wordt makkelijker om met niet-nvidia GPU's aan accelerated machine-learning/AI te doen.
Als er over AI in combinatie met GPU (en Nvidia) gesproken wordt, dan denk ik altijd aan DLSS. Zou dit (DirectML) het dan mogelijk moeten maken om bv. DLSS of een gelijkaardige AI Super Sampling methode volledig "software based" te maken zonder de nood aan bepaalde hardware (bv. de Tensor Cores)? En dat hierdoor in theorie DLSS of een gelijkaardige AISS ook zou moeten werken op de in het artikel vermelde GPUs (AMD Radeon R5/R7/R9 2xx-series of nieuwer, Intel HD Graphics 5xx of nieuwer en NVIDIA GeForce GTX 9xx-series of nieuwer)?
Makkelijker in gebruik, werkt op Windows, meer/makkelijker AI spul
Het is DirectX voor AI: een OS/software laag die hardware onafhankelijke API heeft. De hardwarefabrikant biedt ondersteuning voor die API in de driver - zo wordt de uiteindelijke gebruikerssoftware hardware onafhankelijk.
Exact wat Direct3D/DirectSound/DirectDraw/.... voor hun respectievelijke 'vakgebied' doen.

[Reactie gewijzigd door the_stickie op 24 juli 2024 00:18]

Als ik het commando uitvoer gebeurd er helemaal niets.
Direct uitgevoerd in een venv op Windows 10.

Zijn er hier meer mensen met dit probleem?

Edit:
Python 3.7 (of een van de andere versies) is toch een harde eis.
Op versie 3.9.6 doet het commando helemaal niets.

[Reactie gewijzigd door vliegendehommel op 24 juli 2024 00:18]

Hoe zou ik een virtual environment zonder Python kunnen installeren ;)?

[Reactie gewijzigd door vliegendehommel op 24 juli 2024 00:18]

Is het dan niet "pip3 install tensorflow-directml"?
Dat maakte geen verschil, het lag in mijn geval aan de Python versie.
De ondersteunde versies zijn eigenlijk ook alleen 3.5, 3.6 en 3.7.
Nu nog Pytorch, voor nu heb ik gelukkig ROCm op mijn Vega 64 dus ik kan gebruik maken van Pytorch voor KoboldAI (Hele leuke open source text adventure game waar ik bij betrokken ben). Maar het zou zo tof zijn als ik gewoon onder Windows alles kan draaien en 1 build kan maken waar het gewoon werkt in plaats van dat we losse runtimes moeten distribueren voor CUDA, ROCm en CPU gebruik. En ook in de toekomst AMD kan kopen gezien ROCm maar op een klein groepje kaarten draait.

Tensorflow heeft traditioneel meer API's ondersteund dan Pytorch dus daar is de nood voor DirectML minder hoog. Al met al een hele goede ontwikkeling, want het moet echt eens afgelopen met Nvidia's monopoly op compute.

[Reactie gewijzigd door henk717 op 24 juli 2024 00:18]

Leuk voor toy voorbeelden. Voor al het andere heb je toch een echte linux server met cuda nodig die dagen voor je aan het roken is.
Dat is afhankelijk van je domein. Ik heb modellen in productie die met cuda op een enkele mainstream grafische kaart in een paar uur getraind zijn.

Op dit item kan niet meer gereageerd worden.