Page 1 of 1

Cuda

Posted: Sat 19. Nov 2016, 00:15
by tdrescher
wird es eine Version geben, bei der Cuda unterstütz wird ?

Re: Cuda

Posted: Sun 20. Nov 2016, 18:45
by TJetter
Cuda-Unterstützung wird es in absehbarer Zeit nicht geben, nein.
Für sehr große Netze wird MemBrain aber in Zukunft bessere Multicore-Unterstützung bieten. Bei neuronalen Netzen kann man die Berechnungen leider nicht sinnvoll so aufteilen, dass verschiedenen Cores jeweils ganze Layer (Schichten) des Netzes zugewiesen werden: Die Berechnung eines Layers kann immer erst starten, wenn alle Outputs aller Vorgängerlayer bereits vorliegen. Analog verhält es sich beim Backprop-basierten Training.
Deshalb kann man Layer immer nur vertikal aufteilen (also jedem Core einen Teil eines Layers zuweisen). Das lohnt sich aber erst bei sehr mächtigen Layern und auch erst, wenn die Anzahl eingehender und/oder ausgehender Links eines Layers sehr groß wird. Ansonsten frisst der Verwaltungsaufwand mehrerer Threads (bzw. Cores, die diese Threads abarbeiten) soviel Rechenzeit, dass man in Summe langsamer wird als mit nur einem Core.
Die nächste MemBrain Version wird automatisch die optimale Anzahl Threads/Cores verwenden, um so schnell wie möglich zu rechnen. Als Benutzer wird man das aber noch parametrisieren können, um die jeweilige Ziel-Maschine optimal ausnutzen zu können.

Viele Grüße