Programmation CUDA C
Fermé
samehb
Messages postés
14
Date d'inscription
vendredi 13 décembre 2013
Statut
Membre
Dernière intervention
23 janvier 2014
-
14 déc. 2013 à 15:22
samehb Messages postés 14 Date d'inscription vendredi 13 décembre 2013 Statut Membre Dernière intervention 23 janvier 2014 - 15 déc. 2013 à 23:22
samehb Messages postés 14 Date d'inscription vendredi 13 décembre 2013 Statut Membre Dernière intervention 23 janvier 2014 - 15 déc. 2013 à 23:22
A voir également:
- Programmation CUDA C
- Application de programmation - Guide
- Programmation logo tortue télécharger - Télécharger - Études & Formations
- Programmation carte à puce vierge ✓ - Forum Matériel & Système
- Programmation binaire - Guide
- Logiciel algorithme programmation - Télécharger - Édition & Programmation
1 réponse
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
14 déc. 2013 à 15:26
14 déc. 2013 à 15:26
Salut, "J'ai besoin pour", pardon, mais tu as besoin de quoi?
Au passage, ce travail, c'est un exo à rendre?
Au passage, ce travail, c'est un exo à rendre?
14 déc. 2013 à 18:11
c'est mon code en C :
5. #include <stdlib.h>
6. #include <stdio.h>
7. #include <windows.h>
8. #include <time.h>
9. #define LARGEUR 1024
10. #define HAUTEUR 1024
11. #define DISPLAYTOOL "displayTool\\display.exe"
12.
13. int main()
14. {
15. unsigned char image [LARGEUR][HAUTEUR];
16. unsigned char imageT[LARGEUR][HAUTEUR];
17. char nomFichier[] = "images\\lena.raw";
18. char nomFichierT[] = "images\\res.raw";
19. int x, y, i, j;
20. FILE* fichier;
21. int pixel;
22. char str[256];
23. clock_t start_n, end_m;
24. double time_used_n;
25.
26. printf( "\n----------[ DEBUT DU PROGRAMME ]----------\n" );
27. start_n=clock();
28. fichier = fopen( nomFichier, "rb" );
29. if( fichier==0 )
30. {
31. printf( "Desole, mais le fichier est introuvable ! Le programme va s'arreter..." );
32. return 1;
33. }
34. printf( ">> Lecture de l'image \"%s\" [", nomFichier );
35. for( y=0; y<HAUTEUR; y++ )
36. {
37. printf( "." );
38. for( x=0; x<LARGEUR; x++ ) {
39. image[x][y] = fgetc(fichier);
40. }
41. end_n=clock();
42. }
43. fclose(fichier);
44. printf( "]\n>> Lecture de l'image terminee !\n" );
45.
46. printf( "\n>> Traitement en cours...\n" );
47. printf( ">> Traitement termine...\n\n" );
48. fichier = fopen( nomFichierT, "w+b" );
49. if( fichier==0 )
50. {
51. printf( "Desole, mais le fichier ne peut etre ouvert en ecriture..." );
52. return 1;
53. }
54. printf( ">> Ecriture de l'image \"%s\" [", nomFichierT );
55. for( y=0; y<HAUTEUR; y++ )
56. {
57. printf( "." );
58. for( x=0; x<LARGEUR; x++ )
59. {
60. if(image[x][y]>=146)
61. pixel = 255 ;
62. else
63. pixel = 0 ;
64. imageT[x][y] = pixel;
65. fputc(imageT[x][y], fichier);
66. }
67. fclose( fichier );
68. printf( "]\n>> Ecriture de l'image terminee !\n" );
69. printf( "\n----------[ FIN DU PROGRAMME ]----------\n" );
70. end_n=clock();
71. time_used_n=((double)(end_n-start_n))/CLOCKS_PER_SEC;
72. printf("time_used_n=\n \t %lf \n",time_used_n);
73.
74. sprintf( str, "\"%s\" -%d -%d", nomFichier, LARGEUR, HAUTEUR );
75. ShellExecute(NULL, "open", DISPLAYTOOL, str, NULL, SW_SHOWDEFAULT);
76. sprintf( str, "\"%s\" -%d -%d", nomFichierT, LARGEUR, HAUTEUR );
77. ShellExecute(NULL, "open", DISPLAYTOOL, str, NULL, SW_SHOWDEFAULT);
78. system("pause");
79. return 0;80. }
14 déc. 2013 à 22:13
Et là tu ne se sembles pas avoir compris à quoi sert CUDA, et comment s'en servir: ce code n'est pas et ne sera jamais traduisible dans son intégralité en CUDA C vu qu'il se sert de diverses fonctions de lecture de fichier, de sortie console et d'API propriétaire Windows.
Dans quel contexte, à quel besoin dois-tu répondre pour devoir utiliser CUDA?
15 déc. 2013 à 18:50
Modifié par gravgun le 15/12/2013 à 18:58
Avec ce code précis, il y aurait un ralentissement, mais si tu ajoutes un traitement lourd, là ca deviendra utile et 2 optimisations sont à a disposition: les calculs GPGPU avec CUDA/OpenCL ou alors l'utilisation d'instructions SIMD (3DNow!/MMX/SSE/AVX sur x86/64, NEON sur ARM).
Pour en revenir à la question principale: où coinces-tu? Sais-tu au moins par quoi commencer?
15 déc. 2013 à 21:17
?CUDA C .
-J'ai besoin d'une traduction complète du programme.
- mon spécialité dans son et l'image J'ai donc choisi ce programme comme un exemple
- but de mon application est montrer la difference entre CPU et GPU a partir C et CUDA C