OpenCl et les outils correspondants. Critiques et impressions. - page 27

 
Il s'agit d'histoires alarmistes non fondées datant de l'époque d'OpenCL 1.0. On dirait un texte de 2009-2010.
 
Renat:
Il s'agit d'histoires alarmistes non fondées datant de l'époque d'OpenCL 1.0. On dirait un texte de 2009-2010.

De quoi tu parles, Rinat ?

Les pilotes Catalyst 11.7 WHQL et 11.8 Preview sont prêts à être téléchargés et AMD a déplacé son APP-SDK pour accélérer OpenCL.

applications à la version 2.5, supportant enfin la Double Précision/Doubles/FP64/watchamacallit via cl_khr_fp64.

Un bémol toutefois : il n'est inclus que pour les GPU basés sur Cypress, pas Cayman et pas les puces plus anciennes capables de calculs précis en 64 bits.

http://www.gpu-tech.org/content.php/167-AMD-Catalyst-Driver-11.7-AMD-APP-SDK-2.5-bring-double-precision-for-Cypress-AVX-for-CPUs

Radeon HD 6990/6970/6950 (basée sur Cayman) :

- Double précision au quart de la vitesse
Radeon HD 6870/6850/6790 (basé sur Barts) :
- Pas de support de double précision

Radeon HD 6 770/6750 (basé sur Juniper, renommé pour l'usage OEM) :
- Pas de support de double précision

Radeon HD 6670/6650 (à base de Turcs) :
- Pas de support de double précision

Radeon HD 6450 (basé à Caicos) :
- Pas de support de double précision

Radeon HD 5970 (basée sur Cypress) :
- Double précision à 1/5e de la vitesse

Radeon HD 5870/5850/5830 (basée sur Cypress) :
- Double précision à 1/5e de la vitesse

Radeon HD 5 770/5750 (basé sur Juniper) :
- Pas de support de double précision

Radeon HD 5670/5650/5570 (basée sur Redwood) :
- Pas de support de double précision

Radeon HD 5450 (basée sur Cedar) :
- Pas de support de double précision

Radeon HD 4890/4870/4850/4830/4730 (basée sur RV770/790) :
- Double précision à 1/5e de la vitesse

Radeon HD 4770 (basée sur RV740) :
- Double précision à 1/5e de la vitesse

Radeon HD 4670/4650 (basé sur RV730) :
- Pas de support de double précision

Radeon HD 4550/4350 (basée sur RV710) :
-Pas de support de double précision

Radeon HD 3870/3850 (basé sur RV670) :
- Double précision (à 1/5e de la vitesse)

Radeon HD 3650 (basée sur RV635) :
- Pas de support de double précision
Radeon HD 3470/3450 (basé sur RV615) :
-Pas de support de double précision

Radeon HD 2900 XT/Pro/GT/OEM (basé sur R600) :
-Pas de support de double précision

Radeon HD 2600 XT/Pro (basée sur RV630) :
- Pas de support de double précision

Radeon HD 2400 XT/Pro (basée sur RV610) : - DirectX 10 (pas de Compute Shader cependant) et inférieur,

- Pas de support de double précision

http://developer.download.nvidia.com/compute/cuda/4_1/rel/toolkit/docs/CUDA_Toolkit_Release_Notes_And_Errata.txt

//forums.nvidia.com/index.php?showtopic=34744Windows 2003 Server n'a pas été testé ni qualifié pour être utilisé avec CUDA.


Rinat, dites-nous comment il est possible d'écrire un programme Win32 involontairement pour le faire fonctionner sur WinXP, Win Server 2008, Vista-Win7 et en même temps ne pas fonctionner sur Win Server 2003 ? L'installateur nVidia CUDA SDK de n'importe quelle version 3+ ne s'installe même pas
sur Server 2003 (ne se décompresse pas !), écrit stupidement une référence de cellule invalide, comme dans Win 3.1. Comment nVidia pourrait faire cela dans un programme Win32 UNEXECUTIONAL ?
 

Il y a beaucoup de choses à propos de la précision structurelle sur le GPU, le programmeur du logiciel FIXE doit être très, très prudent, bien même de Nvidia lui-même par exemple :

http://developer.nvidia.com/content/precision-performance-floating-point-and-ieee-754-compliance-nvidia-gpus

4.7 Différences par rapport à x86 Les GPU NVIDIA se distinguent de l'architecture x86 par le fait que les modes d'arrondi sont codés dans chaque instruction de point de moussage au lieu d'utiliser dynamiquement un mot de contrôle de point de moussage. Les gestionnaires de pièges pour les exceptions en virgule flottante ne sont pas pris en charge. Sur le GPU, il n'y a pas de drapeau d'état pour indiquer quand les calculs ont débordé, sous-débordé ou ont impliqué une arithmétique inexacte. Comme SSE, la précision de chaque opération GPU est encodée dans l'instruction (pour x87, la précision est contrôlée dynamiquement par le mot de contrôle de la virgule flottante).

L'étude de CUDA et d'OpenCL donne parfois l'impression paranormale que les faiseurs de fer ont décidé de tuer définitivement les mathématiques avec leurs "révolutions" et leur hystérie marketing - lorsqu'ils créent artificiellement un faux sentiment de ce que doit faire exactement MON ordinateur et comment. Au lieu de calculs mathématiques exacts et prévisibles, on propose leur vitesse frénétique centrée sur le joueur.

Un programmeur doit être très attentif à la précision des calculs, et décider s'il veut calculer sur le CPU ou le GPU. De plus, les propriétaires de matériel et Microsoft ont sournoisement, en catimini, semé la pagaille dans les processeurs.

Eh bien, j'ai du travail à faire. Au revoir.

 

Il ne semble pas qu'on en ait encore discuté...

Lien connexe : La bibliothèque AMD C++ AMP intégrée à Visual Studio 11 http://blogs.amd.com/developer/2012/03/01/amd-and-the-visual-studio-11-beta/ Je crois savoir que la version bêta peut déjà être téléchargée.

 
alsu:

Il ne semble pas qu'on en ait encore discuté...

Lien connexe : La bibliothèque AMD C++ AMP intégrée à Visual Studio 11 http://blogs.amd.com/developer/2012/03/01/amd-and-the-visual-studio-11-beta/ Je crois savoir que la version bêta est déjà disponible au téléchargement.

Ceci est particulièrement intéressant :

Auto-vectorisation

Une autre nouveauté de C++ dans Visual Studio 11 est l'auto-vectoriseur qui est activé par défaut. Le compilateur vectorise les boucles lorsque cela est possible afin d'améliorer les performances en utilisant les instructions vectorielles du processeur (telles que SSE2 et SSE4.x). Prenez l'exemple de l'extrait de code suivant :

float A[1000], B[1000], C[1000] ;

for (i = 0 ; i < 1000 ; i++) {

A[i] = B[i] + C[i] ;

}

Le compilateur C++ peut vectoriser cette boucle afin d'exécuter plusieurs itérations simultanément, ce qui améliore considérablement les performances avec les instructions disponibles sur les processeurs modernes.

En plus du vectoriseur, l'auto-parallélisateur exécutera les boucles sur plusieurs processeurs du système, obtenant ainsi une meilleure utilisation effective du matériel sous-jacent. Le parallélisateur a besoin d'une entrée du programmeur pour indiquer les boucles qui doivent être parallélisées, et peut également être utilisé en conjonction avec l'auto-vectoriseur.

 
Ce que je me demande, c'est combien de ces trucs incluront le support AMD64... je ne veux pas m'accrocher à Intel
 
joo:

Ceci est particulièrement intéressant :

Auto-vectorisation

Une autre nouveauté de C++ dans Visual Studio 11 est l'auto-vectoriseur, qui est activé par défaut. Le compilateur vectorise les boucles lorsque cela est possible afin d'améliorer les performances en utilisant les instructions vectorielles du processeur (telles que SSE2 et SSE4.x). Prenez l'exemple de l'extrait de code suivant :

float A[1000], B[1000], C[1000] ;

for (i = 0 ; i < 1000 ; i++) {

A[i] = B[i] + C[i] ;

}

Le compilateur C++ peut vectoriser cette boucle afin d'exécuter plusieurs itérations simultanément, ce qui améliore considérablement les performances avec les instructions disponibles sur les processeurs modernes.

En plus du vectoriseur, l'auto-parallélisateur exécutera les boucles sur plusieurs processeurs du système, obtenant ainsi une meilleure utilisation effective du matériel sous-jacent. Le parallélisateur a besoin d'une entrée du programmeur pour indiquer les boucles qui doivent être parallélisées, et peut également être utilisé en conjonction avec l'auto-vectoriseur.

C'est fort. Vraiment fort. L'évolution de la technologie informatique vers la parallélisation se déroule littéralement sous nos yeux.
 
AlexEro:

De quoi tu parles, Rinat ?

Les pilotes Catalyst 11.7 WHQL et 11.8 Preview sont prêts à être téléchargés et AMD a déplacé son APP-SDK pour accélérer OpenCL.

Ce que je veux dire, c'est que vous prétendez qu'il n'y a pas d'aujourd'hui et que vous essayez de tirer des conclusions manifestement fausses.

Par exemple, en affichant les plus anciennes versions de cartes vidéo comme preuves et en s'obstinant à ignorer les modèles 7XXX et les pilotes Catalyst 12.x.

À en juger par vos déclarations sur Windows 2003, vous êtes un partisan du "ILS doivent supporter TOUS" et sur la base de la violation d'une condition aussi sacrée (comme il vous semble), le monde devrait admettre son inutilité et aller prier pour le pardon. Le monde avance, évolue et sort des produits nouveaux et meilleurs.

Vous ne savez pas comment des logiciels incompatibles peuvent être écrits parce que vous ne développez pas ces logiciels produits en masse et que vous ne savez pas quels sont les problèmes techniques et les compromis nécessaires. Exiger que les fabricants de cartes vidéo prennent en charge l'ancienne version serveur de Windows 2003 relève de l'extrémisme consumériste. Les fabricants de logiciels sont heureux d'oublier le zoo des anciens systèmes d'exploitation comme un mauvais rêve. Et les fabricants de conducteurs ne font qu'en rêver.

P.S. : il n'est pas nécessaire de sauter sur une méthode comparative triviale "pourquoi soutiennent-ils 2008" au lieu de comprendre réellement les causes profondes.

syl : arrêtez d'utiliser la version cassée de Windows 2003 Server - c'est 2012

 
Renat:

Je veux dire que vous prétendez qu'aujourd'hui n'existe pas et que vous essayez de tirer des conclusions franchement fausses.

Par exemple, en affichant les plus anciennes versions de cartes vidéo comme preuves et en s'obstinant à ignorer les modèles 7XXX et les pilotes Catalyst 12.x.

À en juger par vos déclarations sur Windows 2003, vous êtes un partisan du "ILS doivent supporter TOUS" et sur la base de la violation d'une condition aussi sacrée (comme il vous semble), le monde devrait admettre son inutilité et aller prier pour le pardon. Le monde avance, évolue et sort des produits nouveaux et meilleurs.

Vous ne savez pas comment des logiciels incompatibles peuvent être écrits parce que vous ne développez pas ces logiciels de masse et que vous ne savez pas quels sont les problèmes techniques et les compromis nécessaires. Exiger que les fabricants de cartes vidéo prennent en charge l'ancienne version serveur de Windows 2003 relève de l'extrémisme consumériste. Les fabricants de logiciels sont heureux d'oublier le zoo des anciens systèmes d'exploitation comme un mauvais rêve. Et les fabricants de conducteurs ne font qu'en rêver.

Note : pas besoin de sauter sur la banale méthode comparative "pourquoi soutiennent-ils 2008 alors" qui remplace une réelle compréhension des causes profondes.

syl : arrêtez d'utiliser la version cassée de Windows 2003 Server - c'est 2012

Je comprends parfaitement votre réponse. Ha-ha, j'espère que d'autres le feront aussi.

Et c'est ce que, je vais probablement suivre votre conseil, c'est exactement la même chose que mes intentions. Je vais donc vous laisser tous ici pendant un certain temps - un an ou deux.

Au revoir.

 
AlexEro:

Je comprends très bien votre réponse. Ha ha, j'espère que tous les autres le feront aussi.

Et je vais vous dire, je vais suivre votre conseil, il coïncide avec mes intentions. Je vais donc vous laisser ici pour un petit moment - un an ou deux.

Au revoir.

On ne devinerait jamais en lisant un billet que son auteur est le topicstarter..... La raison pour laquelle il a lancé ce fil n'est pas claire.
Raison: