Machine Class Reference
#include <machine.h>
List of all members.
|
Public Member Functions |
| Machine (int platform_index=0, cl_device_v devices=cl_device_v()) |
| Machine (cl_context_properties gl_context, cl_context_properties display, int platform_index=0, cl_device_v devices=cl_device_v()) |
| ~Machine () |
void | run (cl_kernel kernel, size_t w, size_t h, int device=0) |
void | addChild (Model *child) |
void | removeChild (Model *child) |
void | finish () |
cl_event | copy (cl_mem buf, void *data, size_t size, bool block=true) |
cl_event | copy (void *data, cl_mem buf, size_t size, bool block=true) |
cl_event | copy (cl_mem buf1, cl_mem buf2, size_t size, bool block=true) |
cl_context | getContext () |
cl_mem | createBuffer (cl_mem_flags flags, size_t size, void *ptr=0) |
bool | GLinteroprability () |
Static Public Member Functions |
static cl_platform_v | getPlatforms () |
static cl_device_v | getDevices (cl_platform_id platform_id, cl_device_type type=CL_DEVICE_TYPE_ALL) |
Detailed Description
Trieda zastresuje vytvorenie OpenCL kontextu v ktorom su spravovane vypoctove zariadenia
Constructor & Destructor Documentation
Konstruktor ktory vytvory context s danymi zariadeniami
- Parameters:
-
| platform_index | cislo platformy ktora sa ma pouzit |
| devices | vektor zariadeni z ktorych bude vytvoreny kontext ak je prazdny pouziju sa vsetky zariadenia |
Machine::Machine |
( |
cl_context_properties |
gl_context, |
|
|
cl_context_properties |
display, |
|
|
int |
platform_index = 0 , |
|
|
cl_device_v |
devices = cl_device_v() | |
|
) |
| | |
Konstruktor ktory vytvory context s danymi zariadeniami
- Parameters:
-
| gl_context | OpenGL kontext s ktorym bude zviazany OpenCL kontext na sfunkcnenie OpenGL/OpenGL interoperability |
| display | GLX display na ktorom je dany OpenGL zviazany |
| platform_index | cislo platformy ktora sa ma pouzit |
| devices | vektor zariadeni z ktorych bude vytvoreny kontext |
destruktor uvolni vsetky prostriedky a taktiez aj svojich potomkov
Member Function Documentation
void Machine::addChild |
( |
Model * |
child |
) |
|
Registruje potomka.
- Parameters:
-
| child | ukazovatel na potomka vola sa automaticky v konstruktore Model |
cl_event Machine::copy |
( |
cl_mem |
buf1, |
|
|
cl_mem |
buf2, |
|
|
size_t |
size, |
|
|
bool |
block = true | |
|
) |
| | |
Skopiruje data medzi dvoma CL buffermi
- Parameters:
-
| buf1 | buffer z ktoreho sa bude kopirovat |
| buf2 | buffer do ktoreho sa bude kopirovat |
| size | velkost kopirovanych dat v bajtoch |
| block | ak je true funkcia vrati NULL. inak vracia event |
- Returns:
- udalost ktora posluzi na synchronizaciu kopirovania. ak je blokove vrati NULL
cl_event Machine::copy |
( |
void * |
data, |
|
|
cl_mem |
buf, |
|
|
size_t |
size, |
|
|
bool |
block = true | |
|
) |
| | |
Skopiruje z CL buffera do pamete hosta
- Parameters:
-
| data | ukazovatel odkial sa bude kopirovat |
| buf | buffer do ktoreho sa bude kopirovat |
| size | velkost kopirovanych dat v bajtoch |
| block | ak je true funkcia sa nevrati pokial nie su data skopirovane. ak je false tak sa kopirovanie vykona asynchronne |
- Returns:
- udalost ktora posluzi na synchronizaciu kopirovania. ak je blokove vrati NULL
cl_event Machine::copy |
( |
cl_mem |
buf, |
|
|
void * |
data, |
|
|
size_t |
size, |
|
|
bool |
block = true | |
|
) |
| | |
Skopiruje z CL buffera do pamete hosta
- Parameters:
-
| buf | buffer z ktoreho sa bude kopirovat |
| data | ukazovatel kam sa bude kopirovat |
| size | velkost kopirovanych dat v bajtoch |
| block | ak je true funkcia sa nevrati pokial nie su data skopirovane. ak je false tak sa kopirovanie vykona asynchronne |
- Returns:
- udalost ktora posluzi na synchronizaciu kopirovania. ak je blokove vrati NULL
cl_mem Machine::createBuffer |
( |
cl_mem_flags |
flags, |
|
|
size_t |
size, |
|
|
void * |
ptr = 0 | |
|
) |
| | |
Vytvory memory buffer na kontexte aktualnej Machine
- Parameters:
-
| flags | standartne priznaky pre CLbuffer. CL_MEM_READ_ONLY,CL_MEM_WRITE_ONLY,CL_MEM_*_HOST_PTR |
| size | velkost buffera v bajtoch |
| ptr | ukazovatel na pouzivatelske data ak je pouzity CL_MEM_*_HOST_PTR priznak |
Zavola nad kazdou frontou clFinish co zabezpeci ze vsetky cakajuce udalosti sa vykonaju
cl_context Machine::getContext |
( |
|
) |
|
- Returns:
- OpenCL kontext. Potrebne pre potomkov pri vytvarani programov a bufferov.
cl_device_v Machine::getDevices |
( |
cl_platform_id |
platform_id, |
|
|
cl_device_type |
type = CL_DEVICE_TYPE_ALL | |
|
) |
| | [static] |
- Parameters:
-
| platform_id | ID platformy z ktorej sa maju vratit zariadenia |
| type | typ zariadenia ktore ssa muju vratit CL_DEVICE_TYPE_GPU CL_DEVICE_TYPE_CPU |
- Returns:
- vektor zariadeni z danej platformy a typu
- Returns:
- vektor obsahujuci vsetky platformy pristupne v systeme
bool Machine::GLinteroprability |
( |
|
) |
[inline] |
- Returns:
- true ak je aktivna OpenGL/OpenCL interoperabilita
void Machine::removeChild |
( |
Model * |
child |
) |
|
Odstrani potomka zo zoznau potomkov. Treba zmazat potom rucne. Volat z destruktora
- Parameters:
-
| child | potomok ktory sa ma odstranit |
void Machine::run |
( |
cl_kernel |
kernel, |
|
|
size_t |
w, |
|
|
size_t |
h, |
|
|
int |
device = 0 | |
|
) |
| | |
Prida do fronty na spustenie kernel aj s parametrami. Tie treba nastvit predtym ako sa zavola tato metoda. Tato metoda nie je urcena na priame volanie z programu ale volanie z potomka.
- Parameters:
-
| kernel | kernel ktory sa ma spustit |
| w | sirka vypoctovej domeny |
| h | vyska vypoctovej domeny |
The documentation for this class was generated from the following files: