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

Machine::Machine ( int  platform_index = 0,
cl_device_v  devices = cl_device_v() 
)

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

Machine::~Machine (  ) 

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

void Machine::finish (  ) 

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

cl_platform_v Machine::getPlatforms (  )  [static]

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:

Generated on Tue May 11 22:08:03 2010 for Cellula by  doxygen 1.5.8