Portail de l'AF

Nouvelles

Raid de printemps : Yafu et Einstein@home

Faites un don

Shoutbox

Maeda:
2025-03-07, 21:53:11
C'parti !
[AF>Libristes] alain65:
2025-02-26, 02:26:05
Merci  :jap:
modesti:
2025-02-24, 11:27:41
Tout vient à point à qui sait attendre :siflotte:
ousermaatre:
2025-02-24, 10:47:28
patience  :D  Ca vient
[AF>Libristes] alain65:
2025-02-24, 08:43:55
l'annonce officielle, c'est pas la veille j'espère  :cpopossib:
Maeda:
2025-02-22, 09:58:51
On attend l'annonce officielle détaillée :D
[AF>Libristes] alain65:
2025-02-22, 08:25:50
Et c'est sur quoi ce raid ?
modesti:
2025-02-20, 23:06:46
A 18h28 par notre pharaon préféré, ici-même :D
[AF] Kalianthys:
2025-02-20, 20:50:52
Le raid a été annoncé ?
ousermaatre:
2025-02-20, 18:28:57
15 jours avant le Raid....  :D
modesti:
2025-02-01, 11:10:25
Bonne chasse aux nombres premiers !
modesti:
2025-01-31, 21:24:33
Spafo :D
Maeda:
2025-01-31, 20:11:40
Plutôt H-4h :)
modesti:
2025-01-31, 19:54:14
J-1  :banana:
[AF] Kalianthys:
2025-01-30, 18:53:31
modesti:
2025-01-30, 11:55:53
J-2 :gniak: :ange:
fzs600:
2025-01-02, 11:18:45
Bonne année a tous et bon crunch.
zelandonii:
2025-01-02, 11:08:45
Bonne année à tous et que vous soyez heureux.
Ironman:
2025-01-01, 15:55:54
Bonne année et bonne santé pour vous et vos proches !  :smak:
modesti:
2025-01-01, 07:53:37
Bonne et heureuse année à toutes et tous !
ousermaatre:
2024-12-25, 21:04:16
 :perenoel:
modesti:
2024-12-25, 10:03:06
Noyeux Joël !  :D
fzs600:
2024-12-02, 12:28:17
Tout pareil bon Raid a tous.
modesti:
2024-12-02, 11:29:50
Un peu à la bourre, mais quand même de tout cœur : bon raid à tous ! :hyperbon:
Sébastien:
2024-11-19, 21:42:51
 @Bertrand Fr, je n'ai pas beaucoup d'expérience sur mac, mais je n'ai pas de problème avec BOINC 8.0.4 sur un mac M1.
JeromeC:
2024-11-19, 15:53:46
Moi dès que j'ai su qu'Apple passait à ses propres CPU je me suis précipité pour prendre le dernier iMac Intel du marché (fin 2020) pour remplacer le précédent (après 10 ans de loyaux services) et j'en suis fort aise :)
ousermaatre:
2024-11-19, 15:39:53
 :hello: Bertrand, alors les amis, pas de réponse pour un p'tit nouveau?
Bertrand Fr:
2024-11-18, 20:56:19
Quelqu'un a-t-il réussi  à installer BOINC sur un Mac M2 sans qu'à chaque redémarrage on soit obligé de le réinstaller ?

Recent

[FAQ] Optimisation Calcul CPU - AVX

Démarré par Philippe06121966, 06 Janvier 2014 à 13:09

« précédent - suivant »

0 Membres et 1 Invité sur ce sujet

Philippe06121966

EDIT MODO : reprise de posts effacés

Salut !  :hello:

Suis pas un pro du domaine, mais après quelques tests, voici des infos de profane au sujet des UT AVX.

http://www.pcworld.fr/glossaire/avx,213,1.htm
http://www.pcworld.fr/processeur/actualites,intel-parle-officiellement-prochaine-version-avx-512-cartes-hpc-calcul-xeon-phi-knight-landing,540685,1.htm

Comme vous le savez probablement déjà, certains CPU peuvent "faire tourner" des applications SSE2, SSE3, AVX (AVX1, AVX2, ...)

La particularité des jeux d'instructions AVX étant e.a. d'être destinés aux calculs multimédia, scientifiques, financiers, etc
ils permettent d'effectuer certaines tâches beaucoup plus rapidement. (que SSE3 par exemple)

Suivant les projets et le nombre d'UT calculées en même temps, le gain peut dépasser 40 %.

Par contre, il y a plusieurs contraintes liées à leur utilisation.

La principale est que, sous Windows, BOINC ne peut pas reconnaître les capacités AVX de votre CPU et donc transmettre automatiquement
la demande aux projets pour recevoir des UT CPU AVX => il faut créer une app_info.xml pour les demander !
(Sauf PrimeGrid GFN Short qui permet de cocher une case "Force AVX" dans les préférences")

La deuxième est que, ces unités étant gourmandes en ressources (e.a. mémoires CPU), il est
fortement recommandé de désactiver l'hyperthreading => ne travailler QUE sur les coeurs physiques en désactivant les coeurs logiques.
Schématiquement, la charge de travail pour 1 UT AVX = 2 UT SSE3 => ralentissement sévère + chauffe si HT activé.

Pour faire court : sur un i7-4770K : Si je fais tourner 8 UT PrimeGrid GFN Short AVX en même temps, il faut > 200 heures.
Par contre, après désactivation du HT, je peux en faire tourner 4 en même temps en environ 60 heures, sans aucun ralentissement du pc.
Gain de temps = environ 40 % :D
La moyenne indiquée par le site du projet étant d'environ 220 heures.

Sur ASTEROIDS, les UT GPU n'étant, à mon humble avis, pas intéressantes ou en tout cas pas optimisées,
vous pouvez choisir de faire tourner des UT CPU AVX.
Le gain de temps devrait être d'environ 40 % par rapport aux UT SSE3.

Par contre, impossible de les télécharger automatiquement => Si vous voulez essayer des UT ASTEROIDS AVX,
voici comment faire, après vous être assuré que votre CPU supporte AVX.

(Vous pouvez aussi "ordonner" à BOINC de télécharger des SSE2, SSE3 et AVX.
Après essais, BM téléchargera automatiquement les UT adéquates.)

1) Télécharger AVX EXE depuis
http://asteroidsathome.net/boinc/download/

Le nom du fichier est :
period_search_10210_windows_x86_64__avx.exe

2) Télécharger le fichier app_info.xml ci-joint et l'inclure dans : BOINC-DATA/projects/asteroidsathome.net_boinc

!!! En ouvrant le fichier, vous verrez qu'il fait référence aux 3 applications : SSE2, SSE3 et AVX.
Si vous ne voulez recevoir QUE des AVX, il suffit d'effacer les 2 parties SSE2 et SSE3 pour ne garder que :

<app_info>
<app>
<name>period_search</name>
<user_friendly_name>Asteroids</user_friendly_name>
</app>

<!-- AVX -->
<file_info>
<name>period_search_10210_windows_x86_64__avx.exe</name>
<executable/>
</file_info>
<app_version>
<app_name>period_search</app_name>
<version_num>1021</version_num>
<avg_ncpus>1.00</avg_ncpus>
<max_ncpus>1.00</max_ncpus>
<plan_class>avx</plan_class>
<file_ref>
<file_name>period_search_10210_windows_x86_64__avx.exe</file_name>
<main_program/>
</file_ref>
</app_version>

</app_info>

Si vous gardez le fichier attaché sans le modifier, il forcera BOINC à charger les 3 types d'applications,
et c'est BOINC qui choisira automatiquement ce qui convient le mieux.

J'ai laissé le fichier tel quel pour que vous puissiez choisir les applis que vous voulez.

3) Quitter BOINC et redémarrer puis autoriser de nouvelles tâches Asteroids.

Ce fichier peut évidemment être adapté pour d'éventuels autres projets ayant des UT AVX.


J'insiste sur le fait que si vous ne désactivez pas l'HyperThreading, le gain de temps sera minime,
la t° du CPU risque de monter, et même si elle ne monte pas, il va ralentir fortement.

Finalement, pour désactiver l'HyperThreading : Dans le BIOS, options CPU, il y a généralement la possibilité de l'activer ou le désactiver.
Il y a d'autres méthodes, mais je ne les recommande pas, n'étant pas sur du résultat ;)

Bon Amusement et Bon Crunch :D

JeromeC

C'est visiblement pour du windows, quel est le rôle du .exe dans tout ça ?

Tu sais si la méthode du xml marche sous Mac (sans cet exécutable) ?

Comment savoir si un CPU a le jeu d'instructions AVX ? (si ce n'est le fait qu'il doit être postérieur à début 2011 si j'ai bien compris)
A quoi bon prendre la vie au sérieux, puisque de toute façon nous n'en sortirons pas vivants ? (Alphonse Allais)


JeromeC

Citation
Hello !

Oui, ça ne concerne que Windows ...
Je suppose que sous MAC, BM arrive à détecter les CPU AVX et en informe le serveur.
Pour savoir si un CPU accepte le jeu d'instructions AVX : CPU-Z
Voir Photo Ci-Jointe que j'ai trouvée sur le net.

=> si ton MAC télécharge automatiquement des UT AVX, sous PrimeGrid,  il faut vraiment penser à désactiver l'HT ...
Sinon presque aucun gain de temps + risque de chauffe du CPU

Sur ASTEROIDS c'est peut-être automatique aussi ?

Quant au fichier app_info.xml, il permet ou oblige, c'est selon ;), BM à aller chercher des UT AVX.
Je ne sais pas si ça fonctionne sous MAC puisque, à priori, BM détecte automatiquement la fonction AVX du CPU.

Il y a tout de même des contraintes.

Par exemple : sur mon pc avec 2 GPU, HT OFF = seulement 2 coeurs CPU AVX
car les UT GPU que je calcule sont gourmandes en temps CPU ...

Mais bon. Je voulais juste expliquer comment faire pour recevoir des UT AVX,
beaucoup plus rapide que les SSE3 + détailler les contraintes / recommandations.

Concernant le .exe, il m'a été expliqué sur le forum ASTEROIDS qu'il fallait l'installer pour permettre
la 1ère utilisation sous AVX. Ces fichiers sont fournis par l'admin du projet => installé en confiance.

Sources = je me suis basé sur les explications glanées sur ASTEROIDS et PrimeGrid pour compiler ça
+ essais persos sur PrimeGrid GFN Short :siflotte:


Ma question était surtout théorique, mon i7 date de début 2010 donc aucune chance de AVX...
A quoi bon prendre la vie au sérieux, puisque de toute façon nous n'en sortirons pas vivants ? (Alphonse Allais)


Nico8313

Citation de: JeromeC le 09 Janvier 2014 à 23:54
Ma question était surtout théorique, mon i7 date de début 2010 donc aucune chance de AVX...

Effectivement il faut savoir quel modèle de i7 tu possède pour savoir s'il intègre les instructions AVX

Citation de: JeromeC le 08 Janvier 2014 à 13:46
C'est visiblement pour du windows, quel est le rôle du .exe dans tout ça ?

Et bien le .exe c'est simplement l'application du projet compilé avec les instructions avx.

Citation de: JeromeC le 08 Janvier 2014 à 13:46
Tu sais si la méthode du xml marche sous Mac (sans cet exécutable) ?

A partir du moment ou le projet a compilé une application qui tourne sous Mac avec les instructions avx, oui ça fonctionne.
Par contre sous Mac les applications ne fonctionne pas avec des .exe    :D
L'application pour OSX et là :
http://asteroidsathome.net/boinc/download/period_search_10210_x86_64-apple-darwin__avx_osx

Bien évidement il faut adapter ensuite le fichier xml à l'appli OSX

Citation de: JeromeC le 08 Janvier 2014 à 13:46
Comment savoir si un CPU a le jeu d'instructions AVX ? (si ce n'est le fait qu'il doit être postérieur à début 2011 si j'ai bien compris)

Avec un logiciel comme CPU-Z pour Mac je pense.
ça te donne un truc comme ça par exemple:


JeromeC

En fait à la réflexion BOINC nous dit déjà tout :

09-Jan-2014 22:30:09 [---] Processor: 8 GenuineIntel Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz [x86 Family 6 Model 30 Stepping 5]
09-Jan-2014 22:30:09 [---] Processor features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM PBE SSE3 DTES64 MON DSCPL VMX SMX EST TM2 SSSE3 CX16 TPR PDCM SSE4.1 SSE4.2 POPCNT

Logiquement pas de AVX, comme je disais ça n'existe que sur des CPU produits après début 2011, le mien date de plus d'un an avant.
A quoi bon prendre la vie au sérieux, puisque de toute façon nous n'en sortirons pas vivants ? (Alphonse Allais)


kipoos

manip effectuée sur un core i5  2500k.

j'ai laissé les 3 applis : boinc devrait garder la plus rapide après en avoir fait tourner plusieurs de chaque.
je verrai comment ça marche après avoir vider mon cache simap.

merci phil

sebcbien_bzh

j'ai moi aussi testé sous mon 2500k : pas encore fini mais au lieu de mettre 2h20 ca devrait mettre 1h30 environ soit 40 % de gain de vitesse effectivement.

Oncle Bob

Drapal, mes procs (E3-1260L & i7-2600K) gèrent l'AVX.
Boincstat
Projets du moment
Config principale : i7 2600K@4,2 GHz / 32 Go@1333 MHz / GTX 970 (Win 10)
Crunchbox passives : i7-4785T / 8 Go@1600 MHz / Akasa Euler S (Debian) || i3-4130T / 4 Go@1600 MHz / Akasa Euler (Debian)
ARM : 1*S922 + 1*H3
Boinc@Raspberry Pi | Boinc et Linux | Date fin de projets

procrastinator

Merci pour ces informations.
J'ai désactivé l'hyperthreading de ma machine de course, ce qui conduit à une diminution de température des coeurs de vingt degrés, soit l'objectif secondaire recherché. Aucun changement dans le temps d'exécution des unités Milkyway (sans rapport avec AVX, mais on ne sait jamais où un effet de bord peut se nicher)
:yaya:
J'ai également configuré le bazar pour qu'il traite uniquement des unités Asteroids AVX, je reviendrai quand j'aurai les résultats.
Toi qui cliques ici, abandonne tout esprit de sérieux.

Crunchbang Linux 64 bits, Intel i3770 (HT désactivé), ATI HD7970


procrastinator

Bon, rien de transcendant : en gros je suis passé de 8 threads SSE2 en deux heures à 4 threads AVX en 1h30.
Pas sûr que l'AVX change quoi que ce soit, il faudrait creuser plus.
En tout cas, le processeur chauffe moins, je reste dans cette configuration.

CitationSur Asteroids, je ne fais plus tourner que les SSE3 sur i7 4770K et SSE2 sur i7 2670QM
Surtout pour WuProp ;) et car les gains de temps sont relativement limité, c'est vrai.

Par contre, sur PrimeGrid, toutes les UT's CPU sont à présent disponible (automatiquement) en AVX2 !

Et sur ce projet, les gains en terme de points et de temps sont beaucoup plus conséquents en HT OFF

Par contre, ça chauffe assez fort => faut un très bon refroidissement.
Toi qui cliques ici, abandonne tout esprit de sérieux.

Crunchbang Linux 64 bits, Intel i3770 (HT désactivé), ATI HD7970


toTOW

Phil1966> y'a moyen de savoir si les applications que l'on a (sur PrimeGrid) font de l'AVX ou non ?

CitationJe pense que le système détecte automatiquement les capacités CPU.

Mais je peux vérifier.

(Je n'ai jamais essayé d'app_info sur ce projet ...)

Il y a quelques mois, toutes les applications LLR sont passées en AVX2 / FMA3 ou quelque chose du genre =>
Il faut privilégier HT OFF, sinon ça chauffe beaucoup trop et on "perd du temps" (façon de parler)
Si le CPU n'a pas les fonctions AVX, AVX2, FMA etc je suppose que les LLR tournent en SSE3/SSE2.

NB : Une des raisons pour lesquelles nous avons choisi une application CPU SIEVE pour le RAID est qu'elle ne sollicite pas autant les CPU, et qu'elle tourne très bien HT ON.

Voir : http://forum.boinc-af.org/index.php/topic,2184.msg385318.html#msg385318
FAH-Addict, première source d'information francophone sur le projet Folding@Home.

Oncle Bob

:hello:

On a une liste des applis AVX (et/ou AVX 2.0) ?
Boincstat
Projets du moment
Config principale : i7 2600K@4,2 GHz / 32 Go@1333 MHz / GTX 970 (Win 10)
Crunchbox passives : i7-4785T / 8 Go@1600 MHz / Akasa Euler S (Debian) || i3-4130T / 4 Go@1600 MHz / Akasa Euler (Debian)
ARM : 1*S922 + 1*H3
Boinc@Raspberry Pi | Boinc et Linux | Date fin de projets

Alan St-Pierre

Est-ce que tout cela est encore d'actualité? Est-ce que les contraintes liées à l'utilisation de l'AVX sont toujours vraies (températures, désactivation de l'hyper-threading) ? Pour un i5 6300HQ et un i7 8700.
Ordinateur 1: Intel Xeon 2697-V4, 24 Go DDR4, Nvidia Titan V 12 Go
Ordinateur 2: Lenovo Legion 5 Pro avec AMD Ryzen 7 6800H, 32 Go DDR5, Nvidia RTX 3060 6 Go
Ordinateur 3: Levono Legion 5 avec AMD Ryzen 7 4800H, 32 Go DDR4, Nvidia GTX 1660Ti 6 Go
Ordinateur 4: Intel Core i7-6700, 16 Go DDR3, Nvidia GTX 1650 Super 4 Go
Ordinateur 5: Intel Core i3-7100T, 8 Go DDR4, Nvidia T600 4 Go

GuL

Citation de: Alan St-Pierre le 09 Novembre 2018 à 05:53
Est-ce que tout cela est encore d'actualité? Est-ce que les contraintes liées à l'utilisation de l'AVX sont toujours vraies (températures, désactivation de l'hyper-threading) ? Pour un i5 6300HQ et un i7 8700.
Je n'ai pas lu le topic en entier, mais AVX, AVX2, ou FMA3 sont des instructions matérielles dans le CPU qui accélèrent considérablement les calculs, mais qui chauffent énormément. Pour te donner un exemple, sur des calculs que j'ai réalisé pour mon travail, j'ai gagné un facteur 3-5 en terme de temps de calcul, rien qu'en les activant. Ce sont les successeurs des instructions SSE.

Le principe est de faire le calcul sur l'ensemble d'une série de points d'un coup plutôt que sur chaque point pris séparément, ce qui explique que ça chauffe plus. Les projets de nombre premiers les utilisent beaucoup (Primegrid, SRbase, Citizen science grid...)

Alan St-Pierre

Je voulais dire est-ce que c'est encore préférable de désactiver l'hyperthreading quand on fait de l'AVX?
Ordinateur 1: Intel Xeon 2697-V4, 24 Go DDR4, Nvidia Titan V 12 Go
Ordinateur 2: Lenovo Legion 5 Pro avec AMD Ryzen 7 6800H, 32 Go DDR5, Nvidia RTX 3060 6 Go
Ordinateur 3: Levono Legion 5 avec AMD Ryzen 7 4800H, 32 Go DDR4, Nvidia GTX 1660Ti 6 Go
Ordinateur 4: Intel Core i7-6700, 16 Go DDR3, Nvidia GTX 1650 Super 4 Go
Ordinateur 5: Intel Core i3-7100T, 8 Go DDR4, Nvidia T600 4 Go

GuL

Citation de: Alan St-Pierre le 09 Novembre 2018 à 17:53
Je voulais dire est-ce que c'est encore préférable de désactiver l'hyperthreading quand on fait de l'AVX?
Citation de: Philippe06121966 le 06 Janvier 2014 à 13:09
Pour faire court : sur un i7-4770K : Si je fais tourner 8 UT PrimeGrid GFN Short AVX en même temps, il faut > 200 heures.
Par contre, après désactivation du HT, je peux en faire tourner 4 en même temps en environ 60 heures, sans aucun ralentissement du pc.
Gain de temps = environ 40 % :D
Ça reste d'actualité, et à priori encore quelques années. L'hyperthreading n'est pas le doublement du nombre de cœurs, c'est l'utilisation du CPU à d'autres fins, pendant les cycles inactifs, par exemple en attendant des données provenant de la mémoire. Les calculs SSE et surtout AVX font une utilisation intensive de la mémoire cache du processeur, ce qui limite ces temps de latence et rend donc inutile l'hyperthreading.

Dans le meilleur des cas, avoir deux tâches AVX simultanées sur le même cœur doublera le temps de calcul. Dans la pratique, c'est pire : les transferts de mémoire depuis la RAM vers le cache CPU font perdre en efficacité.

Retirer l'hyperthreading est donc une solution pertinente, mais il y en a une autre : limiter le nombre de threads utilisés par le projet avec la ligne <project_max_concurrent>N</project_max_concurrent> dans le fichier app_config, où N est le nombre de cœurs réels. Dans ce cas, les threads supplémentaires seront utilisés par des applications moins gourmandes.  ;)

JeromeC

Si ça c'est pas de l'optimisation, je ne m'y connais pas :)

Et un déterrage de topic qui reste pertinent 4 ans après en informatique, c'est une première ! :D
A quoi bon prendre la vie au sérieux, puisque de toute façon nous n'en sortirons pas vivants ? (Alphonse Allais)


DocPhilou1966

 
13800346^131072+1   935,840 (decimal)   2019-01-27 Generalized Fermat Prime Search

GuL

J'ajoute que dans le cas des applications multi-threads, l'utilisation de l'hyperthreading peut être bénéfique
CitationSome people have observed that when using MultiThreaded LLR, hyperthreading is actually beneficial. We encourage you to experiment and see what works best for you.

Ci-joint une figure extraite de https://www.nrel.gov/docs/fy16osti/64268.pdf qui montre l'influence du nombre de threads sur un CPU avec 72 threads (2 CPU 18 cores Haswell Xeon E5-2699v3 + Hyperthreading). Sur la courbe rouge, le système d'exploitation gère l'adressage des tâches, tandis que sur la courbe bleue, les threads sont attribuées à un cœur particulier. L'OS s'en sort pas trop mal pour répartir les tâches automatiquement.

SMF spam blocked by CleanTalk