Vulkan berechnet mit Python mit VkInline und denkt über maschinelles Lernen auf der GPU und mehr nach

Hintergrund

Zumindest mit Colab + Tesla P100 konnte ich Vulkan verwenden.

https://qiita.com/syoyo/items/3956e98e4a607cde6cb2

(Wie wäre es mit V100 oder A100?)

Probieren Sie VkInline aus, das den Vulkan-Rechenkern von Python aus wie einen Cupy inline aufrufen kann.

https://github.com/fynv/VkInline

Sie benötigen den Vulkan 1.2-Treiber. (Derzeit ist nur der RADV- (AMD OSS (?) Linux Vulkan-Treiber) oder Windows Adrenalin-Treiber mit 1.2? Kompatibel.)

VkInline

Die Lizenz ist eine Anti 996-Lizenz (Unternehmen, die Arbeitsnormen wie 9:09 (21:00) an 6 Tagen in der Woche ignorieren, sollten keine Anti-996-lizenzierte Software verwenden.)

https://github.com/996icu/996.ICU

Bauen

Es gibt kein besonderes Problem, und wenn Sie das Verfahren befolgen, ist es reibungslos.

Setup der Ausführungsumgebung

Ich kann gehen.

Dieses Mal habe ich den Betrieb mit RX5700 (Navi) mit RADV-Treiber bestätigt.

Beachten Sie die Verwendung von Vulkan (Rechenkern) mit RADV mit ROCm https://qiita.com/syoyo/items/ce3943757281acbdba49

Bewegung

Lassen Sie uns test_compute.py ausführen.

// from VkInline test_compute.py
import VkInline as vki
import numpy as np

# interface with numpy
harr = np.array([1.0, 2.0, 3.0, 4.0, 5.0], dtype='float32')
darr = vki.device_vector_from_numpy(harr)
print(darr.to_host())

# GLSL data type
print(darr.name_view_type())

harr2 = np.array([6,7,8,9,10], dtype='int32')
darr2 = vki.device_vector_from_numpy(harr2)

# kernel with auto parameters, launched twice with different types
kernel = vki.Computer(['arr_in', 'arr_out', 'k'],
'''
void main()
{
    uint id = gl_GlobalInvocationID.x;
    if (id >= get_size(arr_in)) return;
    set_value(arr_out, id, get_value(arr_in, id)*k);
}
''')

darr_out = vki.SVVector('float', 5)
kernel.launch(1,128, [darr, darr_out, vki.SVFloat(10.0)])
print (darr_out.to_host())

darr_out = vki.SVVector('int', 5)
kernel.launch(1,128, [darr2, darr_out, vki.SVInt32(5)])
print (darr_out.to_host())

# create a vector from python list with GLSL type specified
darr3 = vki.device_vector_from_list([3.0, 5.0, 7.0, 9.0 , 11.0], 'float')
print(darr3.to_host())
[1. 2. 3. 4. 5.]
Comb_bb4c7639fd354507
[10. 20. 30. 40. 50.]
[30 35 40 45 50]
[ 3.  5.  7.  9. 11.]

:tada:

Ausblick

Ich bin überrascht, dass es ohne Probleme reibungslos funktioniert! Sie können es erwarten, aber es gibt verschiedene Herausforderungen bei der Erstellung von Apps wie maschinellem Lernen von hier aus.

TODO

Recommended Posts

Vulkan berechnet mit Python mit VkInline und denkt über maschinelles Lernen auf der GPU und mehr nach
Maschinelles Lernen mit Python! Vorbereitung
Beginnend mit maschinellem Python-Lernen
Was ich über KI / maschinelles Lernen mit Python gelernt habe (4)
Maschinelles Lernen mit Python (1) Gesamtklassifizierung
"Scraping & maschinelles Lernen mit Python" Lernnotiz
[Maschinelles Lernen] Versuchen Sie, Spark MLlib mit Python auszuführen, und geben Sie Empfehlungen ab
"Gauß-Prozess und maschinelles Lernen" Gauß-Prozessregression nur mit Python-Numpy implementiert
Verstärken Sie Bilder für maschinelles Lernen mit Python
Maschinelles Lernen mit Python (2) Einfache Regressionsanalyse
Eine Geschichte über maschinelles Lernen mit Kyasuket
[Shakyo] Begegnung mit Python zum maschinellen Lernen
Persönliche Notizen und Links zum maschinellen Lernen ① (Maschinelles Lernen)
Erstellen einer Umgebung für Python und maschinelles Lernen (macOS)
Aufbau einer KI / maschinellen Lernumgebung mit Python
Eine Geschichte über die Automatisierung von Online-Mahjong (Jakutama) mit OpenCV und maschinellem Lernen
[Python] Einfache Einführung in das maschinelle Lernen mit Python (SVM)
Maschinelles Lernen beginnend mit Python Personal Memorandum Part2
Maschinelles Lernen beginnend mit Python Personal Memorandum Part1
Denken Sie an Suchvorgänge mit Tiefenpriorität und Breitenpriorität in Python
[Python] Sammeln Sie Bilder mit Icrawler für maschinelles Lernen [1000 Blatt]
Ich habe mit der maschinellen Vorverarbeitung von Python Data begonnen
Maschinelles Lernen mit Docker (40) mit Anaconda (40) "Hands-On Data Science und Python Machine Learning" von Frank Kane
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 11 und 12 Einführung in Pandas Matplotlib
Erstellen Sie eine Python-Umgebung für maschinelles Lernen mit Containern
Bis Sie mit Python unter Windows 7 eine maschinelle Lernumgebung erstellen und ausführen
Was ich über KI / maschinelles Lernen mit Python gelernt habe (1)
Erste Schritte mit Python3 # 2 Erfahren Sie mehr über Typen und Variablen
Maschinelles Lernen mit Raspberry Pi 4 und Coral USB Accelerator
Führen Sie eine Pipeline für maschinelles Lernen mit Cloud Dataflow (Python) aus.
Einfaches maschinelles Lernen mit Scikit-Learn und Flask ✕ Web App
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 1 und 2
Was ich über KI / maschinelles Lernen mit Python gelernt habe (3)
Erstellen Sie mit Python eine Entwicklungsumgebung für maschinelles Lernen
Zusammenfassung des grundlegenden Ablaufs des maschinellen Lernens mit Python
Praktisches maschinelles Lernen mit Scikit-Learn und TensorFlow-TensorFlow gab auf-
Was ich über KI / maschinelles Lernen mit Python gelernt habe (2)
Richten Sie Python- und maschinelle Lernbibliotheken unter Ubuntu ein
Sprechen Sie mit Cython über die Verbesserung des Engpasses bei Algorithmen für maschinelles Lernen
Python lernen mit ChemTHEATER 03
"Objektorientiert" mit Python gelernt
Python lernen mit ChemTHEATER 05-1
Denken Sie an Yaml mit Python
Python lernen mit ChemTHEATER 02
Python lernen mit ChemTHEATER 01
Maschinelles Lernen Eine Geschichte über Menschen, die mit GBDT in GBDT in Python nicht vertraut sind
[Maschinelles Lernen] Starten Sie Spark mit iPython Notebook und probieren Sie MLlib aus
Erstellen Sie mit VirtualBox und Ubuntu eine Scikit-Lernumgebung für maschinelles Lernen
Ich habe mit Python Clustering & Dimension Compression & Visualization mit maschinellem Lernen begonnen
Maschinelles Lernen mit Nogisaka 46 und Keyakizaka 46 Teil 1 Einführung
Einstellungen der Python3-basierten maschinellen Lernumgebung auf dem Mac (Koexistenz mit Python2)
Programmieren mit Python und Tkinter
Ver- und Entschlüsselung mit Python
Python und Hardware-Verwenden von RS232C mit Python-
Informationen zu Python-Objekten und -Klassen
Informationen zu Python-Variablen und -Objekten
Verbessertes Lernen ab Python