ok godrik
" Djxyz1, ce n'est pas si rare, 35% de ma classe est compose de femme. "
En France c'est souvent moins quand même.
Ok Godrik, c'est bien ce que j'avais compris pour le mot clef restrict (javais vu load hit store sur une explication de restrict), mais j'étais pas sur de la différence entre hit et store, mais en fait c'est juste que hit modifie le registre et store enregistre le registre en mémoire.
__restrict essentiellemnt ca retire les problemes d'aliasing. Souvent ca change pas grand chose au performances mais des fois ca fait une difference enorme.
En moyenne il faut benchmarker et regarder ce que le compilateur pond comme code assembleur pour comprendre les performances et les ameliorer.
(C'est marrant, je viens d'ecrire quasiment la meme chsoe sur slashdot)
En fait je suis tombé sur restrict ne lisant des articles sur le développement de jeux vidéo, car sur les consoles, les développeurs ont rencontré pas mal de problèmes de bande passante entre CPU et RAM, et donc la documentation sur le problème de load hit store est apparu.
En limitant la fragmentation de la mémoire et l'aliasing tu peux améliorer pas mal les performances de ton jeu.
Puis dernièrement je suis tombé sur une question dans un test technique sur load hit store, et n'ayant pas pu répondre car j'avais oublié, j'ai cherché après coup, et je n'étais pas sûr de hit.
Du coup j'ai remit la main sur l'article : http://cellperformance.beyond3d.com/articles/2006/05/demystifying-the-restrict-keyword.html
Par Mike Acton, le engine programmer d'Insomniac Games (des jeux réputés pour être assez fluide sur cette génération de console)
Hey TLM, je suis face à un problème qui paraît simple, mais bon...
J'ai là un dégradé hâché, sans doute sauvegardé à l'arrache, en couleurs 16 bits, enfin il est hâché : http://sournoishack.com/uploads/1727105143Sans_titre.PNG
Et je me demandais simplement s'il existe un moyen, disons, de le dé-hacher. Le dégradé est fait, impossible de le régénérer... Et appliquer un flou sur le dégradé donne des résultats à peine acceptable, y a t-il eu des recherches effectuées dans ce sens?
disclaimer: j'y connais rien en traitement d'image.
Mais ca donne envie de faire un genre d'interpolation radiale ton truc quand meme. L'idee serait de faire une moyenne, mais pas une moyenne sur une zone carre, mais le long de la ligne qui part du point lumieux et qui passe par le pixel dont tu essaye de calculer la nouvelle valeure.
http://www.developpez.com/actu/63675/Des-chercheurs-devoilent-un-prototype-d-Internet-du-futur-reposant-sur-une-architecture-sans-serveur-completement-decentralisee/
Tiens je viens de voir ça sur developpez.com, le projet semble ambitieux.
"L’adoption du nouveau système des chercheurs mettrait fin aux préoccupations de protection de la vie privée des internautes ainsi qu’aux attaques de type DoS (Denial of Service) qui sont de véritables fléaux pour les serveurs."
Serait-on totalement à l’abri pour autant ? J'ai du mal à concevoir tous les services connus comme Google par exemple, fonctionner de cette manière là...
Djxyz1 -> c'est inévitable quand on aime les jeux vidéos je trouve. J'ai toujours voulu créer quelque chose, un média pour amuser les gens.
Quand j'étais petite, j'avais inventé un jeu de société. Je jouais à des jeux de rôle comme Hero Quest car ça me permettait de créer des donjons, des salles, etc...
Puis, il y a pas mal d'années maintenant, j'ai découvert RPG Maker 98 et après XP. Je n'utilisais pas le logiciel pour faire de vrais jeux, mais je l'utilisais pour créer des cartes, et avec des amis on se faisait des jeux de rôles avec (c'était cool !)
Avec XP j'ai découvert le ruby, utilisé comme script dans le logiciel.
Après j'ai touché un peu à game maker que je trouvais fort sympathique, j'avais fait un Mario d'un niveau à l'époque, mais le niveau était méga dur
Après ça est sorti le célèbre Minecraft. C'était sur le web. On pouvait bouger des cubes et construire presque tout ce qu'on voulait. J'ai abandonné RPG Maker pour y jouer.
Mais à force de joueur, je me suis quand même rendue compte que quelque part, on dépends du jeu. C'est pour ça que je me suis remise sérieusement à la programmation (ruby au début, et le C après, tout à fait par hasard).
Je prends mon temps pour apprendre parce qu'à côté de ça je vais à l'école pour obtenir mon CESS. Et surtout j'aime bien comprendre ce que je fais. Si ça marche ou pas et que je ne sais pas pourquoi, je ne suis pas du genre à passer à l'étape suivante.
Donc je m'investis, en espérant un jour pouvoir libérer avec mes amis pleins de créativité niveau jeu.
En plus à la base, rien ne me prédestinait à programmer, j'étais plutôt créative niveau dessin. Le diplôme que j'ai est d'ailleurs un diplôme d'infographie. Sans débouché hélas.
Du coup je refais des études, et je pense aller en informatique de développement, ça me plait beaucoup !
Meh. Ce genre de projet il y en a plein partout. Ca sert jamais a rien parcequ'ils construisent uen grosse architecture mais ils ne resolvent aucun des problemes difficile. Je veux dire: je viens d'en lire 30 pages, j'ai regarde 2 video et j'ai suivi 3 presentation, et je ne sais toujours pas qu'est ce qu'ils cherchent a faire precisement et quel sont les problemes avec les technologies actuel.
Et a mon avis c'est encore un de ces projets "web of things" qui marchent jamais parceque les problemes n'ont jamais ete fondamentaux, mais technologique. Prends l'exemple de la connexion a un NAS a la maison, le probleme es purement un probleme de routage IP qui n'est pas configurer. Ce n'est absolument pas un probleme fondametal, juste technologique. skype a tres bien resolu le probleme il y a pres 15 ans en introduisant des noeud intermediare pour router le traffic.
Bref, comme tu auras pu le voir, ce genre de projet, ca me blase plus qu'autre chose.
@Paulop
a propos de load, hit et store
load:
chargement de la mémoire vers le cache.
hit:
normalement, on appelle un chargement du cache vers le registre un cache hit.
c'est le contraire d'un cache miss.
store:
chargement du cache vers la mémoire.
par exemple si ta 2 chargements de la même source qui se suivent, c'est un hit.
int a = *foo; // *foo dans le cache ? non -> cache miss, load *foo
int b = *foo; // *foo dans le cache ? oui -> cache hit, pas de chargement nécessaire
aujourd'hui, les cpu utilisent la technologie store-to-load forwarding pour éviter
la latence d'un store suivit d'un read sur la même adresse. quand le cpu fait
un store, il met d’abord l’opération en attente dans le store-buffer. maintenant,
si le cpu veut faire un load sur cette adresse qui est toujours en attente, il va
directement chercher la valeur dans le store-buffer! cette optimisation ne fonctionne
que si le store est en attente.
a propos de l'article que tu as poste: il est excellent mais seulement il oublie
de parler de la bande passante. je vais prendre l'exemple de l'amd buldozzer.
l'architecture buldozzer possède un store-load unit par coeur capable de lire
2x128 bits et écrire 1x128 bits par cycle (donc lire 2 adresses et ecrire une).
dans le code de l'article, un vector est 3 floats 32 bits donc chargeable en une
fois seulement.
si tu fait comme le code a la fin de l'article, tu provoque un engorgement du
store-load unit,
load vector_v
load vector_p
load vector_a ; doit attendre (lit 2 adresses a la fois seulement)
compute new_v ; doit attendre vector_a pour le calcul
compute new_p ; idem
store new_v
store new_p ; doit attendre (ecrit 1 adresse seulement)
tu l'evites en faisant
load vector_v
load vector_a
compute new_v
load vector_p ; le load et store se fait en même temps !
store new_v
compute new_p
store new_p
donc il faut quand même faire attention avec le [load->compute->store] pattern. ici sa doit pas changer grand chose vu le peu d’opérations mais quand tu travailles avec les instructions simd, ou tu charges/décharges plusieurs registres de >128 bits, ca peut devenir un vrai problème.
J'ai pas eu le temps de bien me renseigner sur PURSUIT mais à première vue ça me fait pas mal penser à Freenet... et Freenet date pas d'hier ; depuis au moins 2000 on peut faire de l'Internet décentralisé sur une plateforme p2p, c'est pas pour autant que les gens l'utilisent.
@caelacanthe:
Est-ce que ces images peuvent faire l'affaire ?:
https://drive.google.com/file/d/0ByeXUgCiTKbWejZqSFBidTJPT0U/edit?usp=sharing
https://drive.google.com/file/d/0ByeXUgCiTKbWaS1yUkc0MGNfTVU/edit?usp=sharing
Il y a de la perte mais bon ...
Tu l'as fait avec un algorithme de flou? J'y avais pensé aussi, mais on voit encore légèrement le banding, et ça ne réglerait pas le problème d'un dégradé aux bandes espacées différement... Mais merci d'avoir essayé
Après, c'était juste une question comme ça, histoire de savoir s'il existait déjà des solutions toutes prêtes, n'y passons pas des heures.
J'ai juste utilisé un filtre moyenneur plusieurs fois histoire d'avoir un rendu un peu plus correct que l'image de base ^^ Toujours moyen de l'appliquer plusieurs fois de plus. Et peut-être que d'autres filtres sont plus adaptés à cette situation.
J'ai utilisé octave pour faire cela ;)
Mais ce sont des filtres de photoshop?
Au fait, merci godrik pour ta réponse, je ne l'avais pas vue... Mais ça ne conviendrait que pour une image simple, alors que j'ai également des images plus complexes à traiter, qui sont affectées par le même phénomène de dégradés hâchés. Voici pourquoi je cherchais une solution plutôt générique
donne moi une image type. Et a l'occasion je peux essayer de la montrer a des gens autour de moi.
http://sournoishack.com/uom/uploads/98130929efzgzrg.png la voici, c'est pour une sorte de fanart, c'est le corps d'un personnage d'une célèbre licence de poneys, le sombre représente l'éclairement. J'expérimente une technique d'éclairage basée sur la division des canaux de couleurs grâce à des calques d'éclairage comme celle-ci.
Mais comme depuis que je me suis mis au dessin par ordinateur, la faible profondeur des canaux de couleur de gimp a posé ce genre de problèmes d'arrondissement des dégradés, enfin heureusement que pour la 2.10 et déjà dans les versions instables, on aura enfin droit aux 16 bits/canal et même aux virgules flottantes, il était vraiment temps...
Mais nul besoin de passer énormément temps dessus, tu peux toujours regarder si ça t'intéresse, cela m'intéresse aussi d'ailleurs, mais ce dessin est voué à sortir assez rapidement et les dégradés hâchés risquent fort de se retrouver parmi les petits défauts pas trop visibles qui resteront dans le résultat final
" c'est le corps d'un personnage d'une célèbre licence de poneys "
" je peux essayer de la montrer a des gens autour de moi. "
Dis adieu à ta carrière godrik.
C'est bon, stop les préjugés Pocolo, on voit à peine ce que c'est en plus.