Positron libre     EasyRobotics     Robot-passion     Assoc-Caliban     AMF     NaoForge     MbRobot 
Auteur Message

Index du forum <  Programmation  ~  Développer avec OpenCL

MessagePublié: Lun 14 Sep 2009, 14:48
Avatar de l’utilisateurBricoleur débutantInscrit le: Ven 20 Fév 2009, 09:07Messages: 72Localisation: Paris
** dernière mise à jour : jeudi 15 octobre2009 **


voilà je propose de maintenir ce sujet si vous le souhaiter, sur la programmation GPU avec OpenCL.

je vais y poster une liste de ressources et de tutoriaux.




IMPLEMENTATIONS - DRIVERS

Pour les macs (mac osx) : il faut installer la dernière version de mac osx, snow leopard.

Pour les cartes NVIDIA :
http://developer.nvidia.com/object/opencl-download.html

Pour les cartes ATI Radeon et les processeurs : http://developer.amd.com/GPU/ATISTREAMS ... fault.aspx

MATERIELS COMPATIBLES

Pour les processeurs AMD : MD Athlon™ 64 (starting with the Venice/San Diego steppings), AMD Athlon™ 64 X2, AMD Athlon™ 64 FX (starting with San Diego stepping), AMD Opteron™ (starting with E4 stepping), AMD Sempron™ (starting with
Palermo stepping), AMD Phenom™, AMD Turion™ 64, and AMD Turion™ 64 X2.

Pour les cartes NVIDIA :
devrait être proche de cette liste : http://www.nvidia.com/object/cuda_learn_products.html

Pour les cartes ATI Radeon™ HD

  • 5870
  • 5850
  • 5770
  • 5750
  • 4890
  • 4870 X2
  • 4870
  • 4850 X2
  • 4850
  • 4830
  • 4770
  • 4670
  • 4650
  • 4550
  • 4350

ATI FirePro™
  • V8750
  • V8700
  • V7750
  • V5700
  • V3750

AMD FireStream™
  • 9270
  • 9250

ATI Mobility Radeon™ HD
  • 4870
  • 4860
  • 4850X2
  • 4850
  • 4830
  • 4670
  • 4650
  • 4500 Series
  • 4300 Series

ATI Mobility FirePro™
  • M7740

ATI Radeon™ Embedded
  • E4690 Discrete GPU

Processeurs:
  • X86 CPU w/ SSE 3.x or later



GUIDES - TUTORIELS

Tutoriel Apple - Un très bon guide et tutoriel pour démarrer rapidement !
http://developer.apple.com/mac/library/ ... gGuide.pdf

Guide de la programmation OpenCL - un bon gros guide bien complet, écrit par NVIDIA
http://www.nvidia.com/content/cudazone/ ... gGuide.pdf

Guide des bonnes pratiques OpenCL - détails et optimisation etc.. écrit par NVIDIA
http://www.nvidia.com/content/cudazone/ ... sGuide.pdf





DOCUMENTATION - SPECIFICATION

Spécification de référence officielle - La référence des méthodes, leur paramètres, les codes d'erreur.
http://www.khronos.org/registry/cl/spec ... 1.0.43.pdf

Cheat sheet - Petit résumé de toutes les méthodes et leur paramètres
http://www.khronos.org/files/opencl-qui ... e-card.pdf




WRAPPERS - LIBRAIRIES

Pour accéder à OpenCL depuis d'autres langages que le C. Il faut avant cela disposer d'une implémentation/drivers compatible.

PyOpenCL: - Pour Python (il en existe 2, mais celle là m'a l'air bien)
http://mathema.tician.de/software/pyopencl
http://wiki.tiker.net/PyOpenCL
http://documen.tician.de/pyopencl/

jOpenCL: - Pour JAVA
http://jopencl.sourceforge.net/

Version alternative pour Java: OpenCL4Java
http://ochafik.free.fr/blog/?p=190
Pièces jointes:
Description du fichier: OpenCL Apple Programming Guide
OpenCL_MacProgGuide.pdf [442.3 Kio]
Téléchargé 19 fois



Dernière édition par astro le Lun 19 Oct 2009, 15:19, édité 11 fois au total.

_________________
ATCAAATTTCAACACAAAAAATTTCCCTTTATGTTTTTT
Hors-ligne Profil
MessagePublié: Lun 14 Sep 2009, 20:08
Avatar de l’utilisateurRoboticien confirméInscrit le: Lun 23 Fév 2009, 22:53Messages: 431Localisation: Toulouse con
wouaouh !! Merci beaucoup! j'avoue que je ne connais pas les astuces d'une telle programmation. Ce doit être aussi ésotérique que le multithread (j'en ai transpiré avec ça)



_________________
"C'est l'intention qui compte"
Hors-ligne Profil
MessagePublié: Mar 15 Sep 2009, 10:30
Avatar de l’utilisateurRoboticien confirméInscrit le: Jeu 23 Oct 2008, 09:10Messages: 366Localisation: Paris (75018)
Woaw !!! C'est cool ! ::-D:

Merci Astro ! Va falloir bosser maintenant... (j'vais déjà commencer par me procurer une bécane avec une bonne carte graphique...)



:ygeek:



_________________
« Si le savoir peut créer des problèmes, ce n'est pas l'ignorance qui les résoudra. »
Extrait de « L'univers de la science », Isaac Asimov
Hors-ligne Profil
MessagePublié: Mar 15 Sep 2009, 15:32
Avatar de l’utilisateurBricoleur débutantInscrit le: Ven 20 Fév 2009, 09:07Messages: 72Localisation: Paris
ah oui c'est sûr, il faut le matos qui va avec.

Mois ça commence à devenir limite avec mon pc portable et sa carte graphique. Je peux programmer le processeur graphique (c'est une geforce 9300M G, compatible avec le framework CUDA et OpenCL), mais si je lance le simulateur de robots 3D a coté alors là..
les ressources sont partagées entre OpenCL (algorithmes) et OpenGL (calculs graphiques) :cry:

donc je monte petit à petit une vraie machine capable de tenir la charge, mais pas trop grosse non plus, histoire que mon algo reste adapté aux petites machines (genre pc portable "format robot mobile" ;))



_________________
ATCAAATTTCAACACAAAAAATTTCCCTTTATGTTTTTT
Hors-ligne Profil
MessagePublié: Jeu 17 Sep 2009, 15:08
Avatar de l’utilisateurRoboticien confirméInscrit le: Jeu 23 Oct 2008, 09:10Messages: 366Localisation: Paris (75018)
N'hésites pas à partager ta config machine idéale !

Moi suis en pleine recherche là...
Je vais prendre un portable mais je vais surement compléter mon équipement avec une tour personnalisée...

Genre :

INTEL
- Intel Core 2 Quad Q9650 3.0GHz Socket 775 1333MHz bus
- Carte Mère Asus P5N-T Deluxe - Socket 775 pour Intel Pentiun D / Core 2 Duo / Quad Core

ou

AMD
- AMD Phenom II X4 965 3.4GHz Socket AM3
- ASUS M4A78-EM

Carte graphique
- Gainward GeForce GTX 285 2GB GDDR3 / PCI-E 2.0 / SLI / 2xDVI / TV-OUT
ou
- Sapphire Radeon HD 4870 X2 CrossFireX 2048MB GDDR5 / PCI-E / 2xDVI / TV-OUT

- DD 1 To SATA-II 7.200 rpm

Là on commence à avoir une petite bête de course pour un prix normal en commerce pour une bonne machine. Faut juste le faire soi-même... (environ 700 euros)

Pour customizer utilement et pour rendre la machine silencieuse...
- Kit Watercooling Zalman - Silencieux - Reserator 1 - V2 histoire de refroidir la bête

Pour rêver un peu ou pour les gros gros budget :
- Intel Core i7-975 Extreme Edition 3.3GHz Socket 1366 (+ de 900 euros rien que le processeur ::): )
- ASUS P6T Deluxe V2 ou Asrock X58 SuperComputer


Remarquez, il est aussi possible de faire une config mini pour pas que ça prenne trop de place (ou pour l'intégrer dans un corps mais là c'est le domaine de Thierry aka Cetoutotomatix)

Promis dès que j'ai une bécane je penche de plus près OpenCL !

:ygeek:



_________________
« Si le savoir peut créer des problèmes, ce n'est pas l'ignorance qui les résoudra. »
Extrait de « L'univers de la science », Isaac Asimov
Hors-ligne Profil
MessagePublié: Jeu 17 Sep 2009, 23:25
Avatar de l’utilisateurBricoleur débutantInscrit le: Ven 20 Fév 2009, 09:07Messages: 72Localisation: Paris
Ah ça y est j'ai commencé à commandé les pièces pour ma nouvelle machine de dev / simulation ;)

je pars sur du tout AMD finalement, avec un phenom quadcore

pour le moment pas de carte graphique.. il devra se contenter d'une vieille nvidia 8800.. je sais même pas si c'est compatible avec CUDA/OpenCL, je pense pas. mais dès que possible je complète par une voir deux radeon



_________________
ATCAAATTTCAACACAAAAAATTTCCCTTTATGTTTTTT
Hors-ligne Profil
MessagePublié: Ven 18 Sep 2009, 08:44
Avatar de l’utilisateurRoboticien confirméInscrit le: Jeu 23 Oct 2008, 09:10Messages: 366Localisation: Paris (75018)
Choix judicieux !!
T'as pas de carte graphique intégré à ta carte mère ??
Il me semble que les cartes acceptant les processeurs Phenom en possède une ::):
Peut être même une Radeon HD3200...
Certes en 3D tu auras des performances médiocres mais ce sera pas mieux que ta nvidia ?



_________________
« Si le savoir peut créer des problèmes, ce n'est pas l'ignorance qui les résoudra. »
Extrait de « L'univers de la science », Isaac Asimov
Hors-ligne Profil
MessagePublié: Ven 18 Sep 2009, 12:31
Avatar de l’utilisateurBricoleur débutantInscrit le: Ven 20 Fév 2009, 09:07Messages: 72Localisation: Paris
hmm non on dirait que y'a pas de chipset graphique sur la carte..
http://www.gigabyte.fr/Products/Motherb ... 90FXT-UD5P



_________________
ATCAAATTTCAACACAAAAAATTTCCCTTTATGTTTTTT
Hors-ligne Profil
MessagePublié: Ven 18 Sep 2009, 20:54
Avatar de l’utilisateurRoboticien confirméInscrit le: Sam 25 Oct 2008, 23:01Messages: 547
Euh je viens de tomber sur mars on est en quelle année rassurez moi? "une vieille 8800" . :o :o :o

J'ai pas encore regardé l'API mais là très franchement j'ai peur !!

Deja ma 8600 qui gerait des shaders de malade et ma 7600 est pas degueu non plus et vous dites que ça rame? Vous tournez sur vista non?

D'ailleurs si un de vous a un programme de test je l'essaierais bien sur mon pécé en dediant presque complètement la carte vidéo a cette tâche.

Mais c'est prometteur en tout cas, une petite génération 9 en pci sur une mini carte mère en renfort du cpu ça éviterait peut être l'utilisation de plusieurs cartes mères dans la machine.



_________________
Projet en cours: classe d'acquisition visuelle et de sauvegarde Statut: [Terminé]

programmeur
langages: C, C#, C++,asp, php,SQL,javascript,CSS.
Hors-ligne Profil
MessagePublié: Ven 18 Sep 2009, 22:40
Avatar de l’utilisateurBricoleur débutantInscrit le: Ven 20 Fév 2009, 09:07Messages: 72Localisation: Paris
ok alors pour savoir si on a une carte compatible, on peut regarder sur cette page :

http://www.nvidia.com/object/cuda_learn_products.html

donc normalement les geforce 88xx GTx c'est bon :p

Sur ce site, il y a marqué "CUDA compatibility list".

Mais enfait, une carte compatible avec CUDA devrait l'être aussi avec OpenCL, pour peu qu'on ait des drivers à jour.
La raison est toute simple : sur une geforce, les langages de programmation de kernel CUDA ou OpenCL sont compilés vers le même "bytecode" (le PTX, un langage bas niveau pour processeur nvidia. c'est une sorte d'assembleur).

Néanmoins, il est évident qu'entre une carte avec 16 "stream processors" (unified shader) et une autre avec 64, 128 ou 512 de ces processeurs, ou encore entre une carte avec 256 Mo de ram et une autre avec 4 Go, les performances ne sont pas du tout les mêmes... et tout ça a évolué en même pas 3 ans!

pour comparer a peu près les performances, on peut regarder sur cette page, dans les tableaux et à la ligne "nombre d'unified shaders" : http://fr.wikipedia.org/wiki/GeForce#Les_GeForce_8


Dernière édition par astro le Ven 18 Sep 2009, 23:07, édité 1 fois au total.


_________________
ATCAAATTTCAACACAAAAAATTTCCCTTTATGTTTTTT
Hors-ligne Profil
MessagePublié: Ven 18 Sep 2009, 22:51
Avatar de l’utilisateurBricoleur débutantInscrit le: Ven 20 Fév 2009, 09:07Messages: 72Localisation: Paris
Maintenant, pour les ATI, la liste des cartes compatibles :

Officiellement.. rien n'est officiel. ça devrait être rendu public avant la fin de l'année, lors de la release du prochain SDK ATI.

En revanche, je pense qu'on peut se baser, sans prendre trop de risques, sur cette liste :

http://developer.amd.com/gpu/ATIStreamS ... aspx#cards

Qui est la liste des cartes ATI possédant l'architecture nécessaire pour faire du calcul sur GPGPU avec Stream, la librairie propriétaire d'ATI pour le calcul parallèle (bref l'équivalent de CUDA chez nvidia).

Et d'ailleurs, par rapport à cette liste, plutôt les cartes qui n'ont pas de "1,2" écrit en tout petit à la fin de leur nom ;)



_________________
ATCAAATTTCAACACAAAAAATTTCCCTTTATGTTTTTT
Hors-ligne Profil
MessagePublié: Lun 21 Sep 2009, 19:16
Avatar de l’utilisateurRoboticien confirméInscrit le: Jeu 23 Oct 2008, 09:10Messages: 366Localisation: Paris (75018)
En effet ! il n'y a pas de puce graphique intégré à ta carte mère.

Finalement la carte mère de mon portable a rendu l'ame donc me suis acheté un nouveau avec une carte graphique ATI Radeon HD4650. Suffisant pour faire mumuse...

Merci pour ta liste de compatibilité ATi stream.

Apparamment ma carte ne supporte pas les opérations à virgule flottant double précision... snif !

:ygeek:



_________________
« Si le savoir peut créer des problèmes, ce n'est pas l'ignorance qui les résoudra. »
Extrait de « L'univers de la science », Isaac Asimov
Hors-ligne Profil
MessagePublié: Jeu 15 Oct 2009, 19:59
Avatar de l’utilisateurBricoleur débutantInscrit le: Ven 20 Fév 2009, 09:07Messages: 72Localisation: Paris
j'ai mis à jour le premier post, car les drivers AMD/ATI beta 4 sont sorti il y a quelques jours, et intègrent le support d'OpenCL pour les GPU (auparavant, il s'agissait uniquement d'une implémentation CPU).

edit: je viens tout juste de les installer sur mon nouveau serveur de calcul GPGPU (sobrement baptisé megatron) :

amd 64bit quadcore 3.2Ghz / 8 Go de DDR3 / paire de Radeon 4870X2, le tout sous une ubuntu 9.04 (histoire de jouer à fond sur la compatibilité des drivers, mais avec karmic ça devrait tourner aussi) :ugeek:

et donc mes premiers retours :
ben, ça marche plutôt pas trop mal, sachant que les drivers et le sdk sont en bêta !
à part un bug graphique mineur sur un des exemples, tous les exemples de calculs sous OpenCL marchent sur cette machine.

d'ailleurs ça rigole pas chez amd.. y'a une date limite d'autodestruction (février 2010) et un gros carré moche "AMD Testing Only" dans le coin inférieur droit de l'écran, pour bien nous rapeller que si notre carte graphique commence à fumer avec les drivers beta c'est pas de leur faute :lol:



_________________
ATCAAATTTCAACACAAAAAATTTCCCTTTATGTTTTTT
Hors-ligne Profil

Afficher les messages depuis:  Trier par:

Heures au format UTC
Page 1 sur 1
13 messages
Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité
Rechercher pour:
Publier un nouveau sujet  Répondre au sujet
Sauter vers:  
Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum
cron