Vulkan compute avec Python avec VkInline et pense à l'apprentissage automatique GPU et plus

Contexte

Au moins avec Colab + Tesla P100, je pourrais utiliser Vulkan.

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

(Que diriez-vous de V100 ou A100?)

Essayez VkInline, qui peut appeler le noyau de calcul Vulkan en ligne depuis python, comme un cupy.

https://github.com/fynv/VkInline

Vous aurez besoin du pilote Vulkan 1.2. (Actuellement, seul le pilote RADV (pilote AMD OSS (?) Linux Vulkan) ou Windows Adrenalin est compatible avec la version 1.2?)

VkInline

La licence est une licence Anti 996 (Les entreprises qui ignorent les normes du travail, telles que 9h09 (21h00), 6 jours par semaine, ne doivent pas utiliser de logiciel sous licence anti-996)

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

Construire

Il n'y a pas de problème particulier, et si vous suivez la procédure, tout se passera bien.

Configuration de l'environnement d'exécution

Je peux y aller.

Cette fois, j'ai confirmé l'opération avec RX5700 (Navi) avec pilote RADV.

Remarque sur l'utilisation de Vulkan (noyau de calcul) avec RADV avec ROCm https://qiita.com/syoyo/items/ce3943757281acbdba49

bouge toi

Exécutons test_compute.py.

// 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:

Perspective

Je suis surpris que cela fonctionne correctement sans aucun problème! Vous pouvez vous y attendre, mais la création d'applications telles que l'apprentissage automatique à partir d'ici présente divers défis.

TODO

Recommended Posts

Vulkan compute avec Python avec VkInline et pense à l'apprentissage automatique GPU et plus
Apprentissage automatique avec Python! Préparation
Commencer avec l'apprentissage automatique Python
Ce que j'ai appris sur l'IA / l'apprentissage automatique avec Python (4)
Apprentissage automatique par python (1) Classification générale
Mémo d'apprentissage "Scraping & Machine Learning avec Python"
[Apprentissage automatique] Essayez d'exécuter Spark MLlib avec Python et faites des recommandations
"Processus Gauss et apprentissage automatique" Régression de processus Gauss implémentée uniquement avec Python numpy
Amplifiez les images pour l'apprentissage automatique avec Python
Apprentissage automatique avec python (2) Analyse de régression simple
Une histoire sur l'apprentissage automatique avec Kyasuket
[Shakyo] Rencontre avec Python pour l'apprentissage automatique
Notes personnelles et liens sur l'apprentissage automatique ① (Machine learning)
Créer un environnement pour Python et l'apprentissage automatique (macOS)
Construction d'environnement AI / Machine Learning avec Python
Une histoire sur l'automatisation du mahjong en ligne (Jakutama) avec OpenCV et l'apprentissage automatique
[Python] Introduction facile à l'apprentissage automatique avec python (SVM)
Apprentissage automatique à partir de Python Personal Memorandum Part2
Apprentissage automatique à partir de Python Personal Memorandum Part1
Pensez aux recherches de priorité de profondeur et de priorité de largeur en Python
[Python] Collectez des images avec Icrawler pour l'apprentissage automatique [1000 feuilles]
J'ai commencé l'apprentissage automatique avec le prétraitement des données Python
Machine Learning avec docker (40) avec anaconda (40) "Hands-On Data Science and Python Machine Learning" Par Frank Kane
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitres 11 et 12 Introduction à Pandas Matplotlib
Créer un environnement d'apprentissage automatique Python avec des conteneurs
Jusqu'à ce que vous créiez un environnement d'apprentissage automatique avec Python sur Windows 7 et que vous l'exécutiez
Ce que j'ai appris sur l'IA / l'apprentissage automatique avec Python (1)
Premiers pas avec python3 # 2 En savoir plus sur les types et les variables
Apprentissage automatique avec Raspberry Pi 4 et Coral USB Accelerator
Exécutez un pipeline de machine learning avec Cloud Dataflow (Python)
Apprentissage automatique facile avec scikit-learn et flask ✕ Application Web
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer chapitres 1 et 2
Ce que j'ai appris sur l'IA / l'apprentissage automatique avec Python (3)
Créer un environnement de développement d'applications d'apprentissage automatique avec Python
Résumé du flux de base de l'apprentissage automatique avec Python
L'apprentissage automatique pratique avec Scikit-Learn et TensorFlow-TensorFlow a abandonné -
Ce que j'ai appris sur l'IA / l'apprentissage automatique avec Python (2)
Configurer des bibliothèques Python et d'apprentissage automatique sur Ubuntu
Parlez de l'amélioration du goulot d'étranglement des algorithmes d'apprentissage automatique avec Cython
Apprendre Python avec ChemTHEATER 03
"Orienté objet" appris avec python
Apprendre Python avec ChemTHEATER 05-1
Pensez à yaml avec python
Apprendre Python avec ChemTHEATER 02
Apprendre Python avec ChemTHEATER 01
Apprentissage automatique Une histoire sur des personnes qui ne sont pas familiarisées avec GBDT utilisant GBDT en Python
[Apprentissage automatique] Démarrez Spark avec iPython Notebook et essayez MLlib
Créez un environnement d'apprentissage automatique scikit-learn avec VirtualBox et Ubuntu
J'ai commencé l'apprentissage automatique avec le clustering Python, la compression et la visualisation de dimensions
Apprentissage automatique pour apprendre avec Nogisaka 46 et Keyakizaka 46 Partie 1 Introduction
Paramètres d'environnement d'apprentissage automatique basés sur Python3 sur Mac (coexistence avec Python2)
Programmation avec Python et Tkinter
Chiffrement et déchiffrement avec Python
Python et matériel - Utilisation de RS232C avec Python -
À propos des objets et des classes Python
À propos des variables et des objets Python
Apprentissage amélioré à partir de Python