pstlspoc Index du Forum

pstlspoc
SPOC

 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Intéropérabilité SPOC - OpenGL
Aller à la page: <  1, 2, 3, 4, 5, 6, 7, 8  >
 
Poster un nouveau sujet   Répondre au sujet    pstlspoc Index du Forum -> pstlspoc -> pstlspoc
Sujet précédent :: Sujet suivant  
Auteur Message
Mathias


Hors ligne

Inscrit le: 23 Jan 2013
Messages: 57

MessagePosté le: Mar 9 Avr - 09:27 (2013)    Sujet du message: Intéropérabilité SPOC - OpenGL Répondre en citant

dev_vec_array est un bloc de value qui correspond au champ 3 de la value vector
dev_vec est le vecteur GPU qui nous interesse, il est recupérée dans le champ nb_device du dev_vec_array
d_A est le pointeur GPU (le cl_mem) qui est stocké dans le champ 1 du dev_vec.


Si on regarde les types côté caml:


type ('a,'b) vector = {
  mutable device : int; (* -1 -> CPU, 0+ -> device *)
  vector : ('a,'b) spoc_vec;
  cuda_device_vec : device_vec array;
  opencl_device_vec : device_vec array;
  length : int;
  mutable dev: vec_device;
  kind: ('a, 'b)kind;
  mutable is_sub: (('a,'b) sub) option;(*('a, 'b) sub;*)
  sub : ('a, 'b) vector list;
  vec_id: int;
mutable seek:int
}



dev_vec_array  correspond a  opencl_device_vec : device_vec array;


device_vec est un type abstrait. 
Regardez Vector.ml/Vector.mli





Revenir en haut
Publicité






MessagePosté le: Mar 9 Avr - 09:27 (2013)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
sam
Administrateur

Hors ligne

Inscrit le: 15 Jan 2013
Messages: 83

MessagePosté le: Mar 9 Avr - 17:28 (2013)    Sujet du message: Intéropérabilité SPOC - OpenGL Répondre en citant

Je comprends mieux, merci.



CL GL Sharing V3.0:
http://www.sendspace.com/file/zuef1a

Dans cette version tout passe mais je pense que je fais quand même n'importe quoi.

Acquire:
...
 d_A = Cl_mem_val(Field(dev_vec, 1));
...
 Store_field(dev_vec, 3, Val_cl_mem(d_A));


release:
...
d_A = Cl_mem_val(Field(dev_vec, 3));
...
pas de store

Normalement je pense que je devrait toujours utiliser le premiere case de dev_vec mais erreur segmentation.
 


Revenir en haut
Mathias


Hors ligne

Inscrit le: 23 Jan 2013
Messages: 57

MessagePosté le: Mar 9 Avr - 17:59 (2013)    Sujet du message: Intéropérabilité SPOC - OpenGL Répondre en citant

Je ne comprends pas le 3.
Pourquoi pas 1?
d_A est recupéré au champ 1 de dev_vec


 d_A = Cl_mem_val(Field(dev_vec, 1)); 



il faut le remettre au meme endroit apres la modification



Store_field(dev_vec, 1, Val_cl_mem(d_A)); 


Revenir en haut
Mathias


Hors ligne

Inscrit le: 23 Jan 2013
Messages: 57

MessagePosté le: Mar 9 Avr - 18:05 (2013)    Sujet du message: Intéropérabilité SPOC - OpenGL Répondre en citant

Verifiez si il n'y a pas d'autres changements dans l'etat du vecteur caml, par exemple, si on a deplacé le vecteur sur  un device, il faut changer un champ.Regardez to_device dans Mem.ml pour voir comment ça se fait.
Je me demande en particulier si qd on fait le spoc_clCreateFromGLBuffer il ne faut pas faire ce changement. Je me demande ou sont les données apres l'appel de cette fonction (sur CPU ou sur GPU?)


Revenir en haut
sam
Administrateur

Hors ligne

Inscrit le: 15 Jan 2013
Messages: 83

MessagePosté le: Mer 10 Avr - 21:29 (2013)    Sujet du message: Intéropérabilité SPOC - OpenGL Répondre en citant

J'observe le code de to_device dans mem.ml.
Je ne comprends pas vraiment à quoi corresponds le type somme
Transferring of device_info , Dev of device_info, No_dev

à quoi correspond No_dev?


Revenir en haut
Mathias


Hors ligne

Inscrit le: 23 Jan 2013
Messages: 57

MessagePosté le: Mer 10 Avr - 21:31 (2013)    Sujet du message: Intéropérabilité SPOC - OpenGL Répondre en citant

Ca permet de vérifier si un vecteur est en cours de transfert.
Transferring = en cours de transfert
Dev d = sur le device d
No_dev = sur le cpu


Revenir en haut
sam
Administrateur

Hors ligne

Inscrit le: 15 Jan 2013
Messages: 83

MessagePosté le: Jeu 11 Avr - 17:46 (2013)    Sujet du message: Intéropérabilité SPOC - OpenGL Répondre en citant

j'ai ajouté Vector.set_device. tout passe mais le comportement du programme est bizarre.

CL GL Sharing:

http://www.sendspace.com/file/vkzpei

GLBuffer Ocaml passe
Acquire OCaml passe
Run OCaml passe
Release OCaml passe
Erreur de segmentation (core dumped)


Revenir en haut
Mathias


Hors ligne

Inscrit le: 23 Jan 2013
Messages: 57

MessagePosté le: Jeu 11 Avr - 20:43 (2013)    Sujet du message: Intéropérabilité SPOC - OpenGL Répondre en citant

En fait j'ai un problème tout bête. Ou définissiez-vous clCreateFromGLBuffer.
Il n'y a pas de include des headers de cl_gl et rien non plus dans Opencl_dynlink.h...
Et Attention dans  
OPENCL_CHECK_CALL1(d_A, Cl_mem_val(clCreateFromGLBuffer( ctx, CL_MEM_READ_WRITE, vbo, &opencl_error)) );
il ne faut pas mettre le Cl_mem_val (il n'y a pas de raison d ele mettre et il peut faire passer le code alors que la fonction 'est jamais définie).


Du coup je pense que la fonction n'est pas définie et n'est donc jamais appelée. Si c'est bine le cas, il "suffit" d'inclure le header ou qqch comme ça.


Mon doute vient du fait que quand j'appelle la fonction (sans Cl_mem_val),  le compilateur me dit que clCreateFromGLBuffer n'est pas défini...


Revenir en haut
sam
Administrateur

Hors ligne

Inscrit le: 15 Jan 2013
Messages: 83

MessagePosté le: Jeu 11 Avr - 22:22 (2013)    Sujet du message: Intéropérabilité SPOC - OpenGL Répondre en citant

Quand j'enleve cl_mem_val j'avais ca:
Spoc_Sharing_c.c: In function ‘spoc_clCreateFromGLBuffer’:
Spoc_Sharing_c.c:43:5: erreur: assignment makes pointer from integer without a cast [-Werror]

voila pourquoi je l'ai ajouté.

Et si j'essaye de vandaliser le nom de la fonction clCreateFromGLBuffe:

    kernels_ext.cmo bigarray.cma str.cma -I +spoc spoc.cma -I . \
    -cclib -lspoc spoc_sharing.cma \
    -cclib -I  \
    -cclib -ICL/ -cclib -lOpenCL \
    -cclib -IGL/ -cclib -lGL \
    -custom -o spoclevel_sharing
Spoc_Sharing_c.c:44: error: undefined reference to 'cCrateroGLBufer'
collect2: erreur: ld a retourné 1 code d'état d'exécution
File "_none_", line 1:
Error: Error while building custom runtime system

Il ne l'a reconnait plus...donc je me suis qu'il la trouvait bien...mais j'avais effectivement eu
des soucis pour la compilation et les includes.


Mais chez moi quand j'enleve cl_mem_val il la reconnait


Dernière édition par sam le Jeu 11 Avr - 22:28 (2013); édité 1 fois
Revenir en haut
sam
Administrateur

Hors ligne

Inscrit le: 15 Jan 2013
Messages: 83

MessagePosté le: Jeu 11 Avr - 22:25 (2013)    Sujet du message: Intéropérabilité SPOC - OpenGL Répondre en citant

A la page 3 on en avait déjà parlé d'ailleurs.

J'avais passé beaucoup de tps sans trouvé, quand je mettais Spoc.h et cl_gl.h en mettant ca marchait pas.


Revenir en haut
sam
Administrateur

Hors ligne

Inscrit le: 15 Jan 2013
Messages: 83

MessagePosté le: Ven 12 Avr - 04:25 (2013)    Sujet du message: Intéropérabilité SPOC - OpenGL Répondre en citant

Bonjour,

J'ai essayé d'ajouter clGetGLObjectInfo pour pourvoir tester si on fait bien les apelles.


voila l'erreur que j'obtiens à la compilation:

 
Spoc_Sharing_c.c: In function ‘spoc_clGetGLObjectInfo’:
Spoc_Sharing_c.c:96:28: erreur: ‘CL_GL_OBJECT_BUFFER’ undeclared (first use in this function)
Spoc_Sharing_c.c:96:28: note: each undeclared identifier is reported only once for each function it appears in
make: *** [Spoc_Sharing_c.o] Erreur 1





pourtant j'ai bien changé Opencl_dynlink.h:



/* cl_context_info + cl_context_properties */
#define CL_CONTEXT_PLATFORM                         0x1084
#define CL_GL_CONTEXT_KHR                             0x2008
#define CL_GLX_DISPLAY_KHR                             0x200A
#define CL_GL_OBJECT_BUFFER                              0x2000

/* cl_command_queue_info */
#define CL_QUEUE_CONTEXT                            0x1090




Donc effectivement il me semble qu'il y a un problème soit avec mon makefile soit avec mes includes.
Normalement je devrais pouvoir accéder à ce qu'il y a dans opencl_dynlink.h je crois




CL GL Sharing V3.1:
http://www.sendspace.com/file/mpxwpp


Revenir en haut
Mathias


Hors ligne

Inscrit le: 23 Jan 2013
Messages: 57

MessagePosté le: Ven 12 Avr - 10:14 (2013)    Sujet du message: Intéropérabilité SPOC - OpenGL Répondre en citant

Dans votre archive CL_GL_OBJECT_BUFFER n'est pas dans Opencl_dynlink.h

Revenir en haut
Mathias


Hors ligne

Inscrit le: 23 Jan 2013
Messages: 57

MessagePosté le: Ven 12 Avr - 11:40 (2013)    Sujet du message: Intéropérabilité SPOC - OpenGL Répondre en citant

J'ai fait pas mal de tests sur votre code et il y a un soucis dans 
clCreateFromGLBuffer
je recupere une erreur : 
Fatal error: exception Sharing.INVALID_GL_OBJECT
selon la doc c'est parceque : 
CL_INVALID_GL_OBJECT if bufobj is not a GL buffer object or is a GL buffer object but does not have an existing data store.



Je peux vous donner le code que j'ai modifié (à partir du votre) mais ce serait bien qu'on en discute un peu qd même.


Revenir en haut
Mathias


Hors ligne

Inscrit le: 23 Jan 2013
Messages: 57

MessagePosté le: Ven 12 Avr - 13:05 (2013)    Sujet du message: Intéropérabilité SPOC - OpenGL Répondre en citant

Correction, cette erreur venait de moi.
Par contre maintenant tout passe si on ne lance pas le kernel, sinon il y a une erreur au release (en fait sur le flush/finish).


Revenir en haut
sam
Administrateur

Hors ligne

Inscrit le: 15 Jan 2013
Messages: 83

MessagePosté le: Ven 12 Avr - 13:07 (2013)    Sujet du message: Intéropérabilité SPOC - OpenGL Répondre en citant

CL_GL_OBJECT_BUFFER:
j'ai juste rajouter #define CL_GL_OBJECT_BUFFER 0x2000dans Opencl_dynlink.h,
faut il autre chose?

clCreateFromGLBuffer:
Je suis très intéressé par vos modif. et aussi pour en discuter.


Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 07:14 (2018)    Sujet du message: Intéropérabilité SPOC - OpenGL

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    pstlspoc Index du Forum -> pstlspoc -> pstlspoc Toutes les heures sont au format GMT + 1 Heure
Aller à la page: <  1, 2, 3, 4, 5, 6, 7, 8  >
Page 6 sur 8

 
Sauter vers:  

Index | Panneau d’administration | creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com