2016-11-22 2 views
1

Ich habe das Paket 'gpuR' verwendet, um die Geschwindigkeit von Code-Manipulationsmatrizen zu erhöhen. Eine Matrix (gebildet durch as.matrix (x)) können den Code an einen vclMatrix umgewandelt werden unter Verwendung von (VCL zeigt die Daten auf der GPU gespeichert ist)Wie konvertiert man eine GPU (gpuR) -Matrix in eine Standard-R-Matrix?

vclm <- vcLMatrix(x) 

multmatrix <- vclm * vclm 

ist viel schneller als

multmatrix <- x * x 

für eine große Matrix, aber wie konvertiere ich die Multmatrix zurück in eine Standard-R-Matrix für weitere Manipulation?

Auch jede Idee, warum Multiplikation ist so viel schneller, aber elementweise Addition z.

addmatrix <- vclm + vclm 

ist deutlich langsamer als das Hinzufügen von Standardmatrizen?

Vielen Dank, Antony

+0

Ich empfehle Ihnen, den Blog des Autors in [hier] (http://www.parallelr.com/r-gpu-programming-for-all-with-gpur/) zu lesen. Vielleicht hilfreich. – Patric

Antwort

1

Die Lösung ist ganz einfach. Sie können eine vclMatrix oder gpuMatrix in eine matrix konvertieren, indem Sie einfach eckige Klammern übergeben.

r_matrix <- multmatrix[] 

In der neuesten Version auf der Verpackung github Version 1.2.2 verfügt über einen Komfort-Wrapper für as.matrix. Es wird in der nächsten Version auf CRAN verfügbar sein.

Verwandte Themen