web-dev-qa-db-fra.com

Puis-je exécuter Cuda ou opencl sur intel iris?

J'ai un Macbook pro mi-2014 avec processeur Intel Iris et Intel Core i5 16 Go de RAM. Je prévois d'apprendre de la 3D tracée par rayons. Mais, je ne suis pas sûr, si mon ordinateur portable peut rendre rapidement sans le matériel de nvidia.

Donc, j'apprécierais, si quelqu'un peut me dire si je peux utiliser Cuda sinon, pourriez-vous s'il vous plaît m'apprendre de manière très simple comment activer OpenCL dans After Effects. Je recherche un tutoriel pour les débutants pour apprendre à créer ou à construire OpenCL?

10
Fudoli

Cuda ne fonctionne que sur le matériel nvidia mais il peut y avoir des bibliothèques qui le convertissent pour fonctionner sur des cœurs de processeur (pas igpu).

AMD travaille à "hipifier" les vieux noyaux de cuda pour les traduire en opencl ou en codes similaires afin qu'ils puissent devenir plus généraux.

Opencl fonctionne partout tant que le matériel et le système d'exploitation le prennent en charge. AMD, Nvidia, Intel, Xilinx, Altera, Qualcomm, MediaTek, Marvell, Texas Instruments .. soutiennent cela. Peut-être même que Raspberry Pi-x pourra prendre en charge à l'avenir.

La documentation pour opencl dans stackoverflow.com est en cours de développement. Mais il y a quelques sites:

Si c'est le cas Iris Graphics 6100 :

Votre GPU intégré dispose de 48 unités d'exécution ayant chacune 8 unités ALU qui peuvent ajouter, multiplier et bien d'autres opérations. Sa fréquence d'horloge peut atteindre 1 GHz. Cela signifie un maximum de 48 * 8 * 2 (1 ajout + 1 multiplication) * 1G = 768 Giga opérations en virgule flottante par seconde, mais uniquement si chaque ALU est capable de faire simultanément 1 ajout et 1 multiplication. Le 768 Gflops est plus qu'un GPU discret bas de gamme tel que le R7-240 d'AMD. Le traçage de rayons doit accéder à nouveau à trop de données de géométrie, donc un appareil doit avoir sa propre mémoire (comme avec Nvidia ou AMD), pour laisser le CPU faire son travail.

La façon dont vous installez opencl sur un ordinateur peut changer en fonction du système d'exploitation et du type de matériel, mais la création d'un logiciel avec un ordinateur installé en opencl est similaire:

  • Plateformes de requête. Le résultat de ceci peut être AMD, Intel, Nvidia, la duplication de ceux-ci en raison des installations chevauchées de mauvais pilotes, des plates-formes expérimentales avant les nouveaux supports de version opencl.
  • Interrogez les périphériques d'une plateforme (ou de toutes les plateformes). Cela donne des périphériques individuels (et leurs doublons s'il y a des erreurs de pilote ou d'autres choses à corriger).
  • Créer un contexte (ou plusieurs) à l'aide d'une plateforme
  • Utiliser un contexte (donc tout sera implicitement synchronisé):

    • Construisez des programmes en utilisant les chaînes du noyau. Habituellement, le processeur peut prendre moins de temps qu'un GPU pour créer un programme (il existe une option de chargement binaire pour réduire cela).
    • Construisez des noyaux (en tant qu'objets maintenant) à partir de programmes.
    • Créez des tampons à partir des tampons côté hôte ou des tampons gérés par opencl.
    • Créer une file d'attente de commandes (ou plusieurs)

Juste avant le calcul (ou un tableau de calculs):

  • Sélectionnez des tampons pour un noyau comme arguments.
  • Mettre en file d'attente les opérations d'écriture (ou mapper/démapper) sur les tampons "d'entrée"

Calculer:

  • Mettre en file d'attente le noyau de la plage (en spécifiant quel noyau s'exécute et avec combien de threads)
  • Mettre en file d'attente les opérations de lecture (ou mapper/démapper) sur les tampons de "sortie"
  • N'oubliez pas de vous synchroniser avec l'hôte à l'aide de clFinish () si vous n'avez pas utilisé le type de blocage enqueueBufferRead.
  • Utilisez vos données accélérées.

Après opencl n'est plus nécessaire:

  • Assurez-vous que toutes les files d'attente de commandes sont vides/terminées pour le travail du noyau.
  • Libérez tout dans l'ordre inverse de la création

Si vous avez besoin d'accélérer un logiciel open source, vous pouvez basculer une boucle parallélisable de hotspot avec un simple noyau opencl, s'il n'a pas déjà un autre support d'accélération. Par exemple, vous pouvez accélérer la pression d'air et l'advection de chaleur dans le simulateur de bac à sable powdertoy.

16

Oui, vous pouvez , car OpenCL est pris en charge par MacOS nativement.

D'après votre question, il semble que vous ne cherchiez pas conseils sur la programmation , ce qui aurait été le sujet approprié pour Stack Overflow. La première recherche effectuée sur Google explique comment activer les effets accélérés OpenCL dans After Effects (boîte de dialogue Paramètres du projet -> Rendu vidéo et effets), mais je n'ai aucune expérience de cela moi-même.

4
tera