Skip to content

Commit 19b542a

Browse files
committed
about done
1 parent 80a5c8a commit 19b542a

File tree

4 files changed

+19
-12
lines changed

4 files changed

+19
-12
lines changed

NBody OpenCL/Main.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ void printHelp() {
3030
int main( int argc, char **argv ) {
3131
info_t info;
3232
info.n = 1000;
33-
info.steps = 100;
33+
info.steps = 1000;
3434
info.sphereRadius = 10; //10
3535
info.kappa = 1;
3636
info.mass = 1;
@@ -42,11 +42,11 @@ int main( int argc, char **argv ) {
4242
info.randFunc = SPHERE_2_POLES;
4343

4444
bool doMPI = false;
45-
bool doCPU = true;
46-
bool doCPUOpt = true;
47-
bool doGPU1 = false;
48-
bool doGPU2 = false;
49-
bool doGPU3 = false;
45+
bool doCPU = false;
46+
bool doCPUOpt = false;
47+
bool doGPU1 = true;
48+
bool doGPU2 = true;
49+
bool doGPU3 = true;
5050
bool doCombo = false;
5151
bool doGL = false;
5252

NBody OpenCL/WOCL.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,4 +169,7 @@ void WOCL::AcquireObjectsFromGLAndFinish( cl_uint num, cl_mem *objects ) {
169169
void WOCL::ReleaseObjectsToGLAndFinish( cl_uint num, cl_mem *objects ) {
170170
ret = clEnqueueReleaseGLObjects( m_queue, num, objects, 0, NULL, NULL ); CheckForError( ret, "clEnqueueReleaseGLObjects" );
171171
ret = clFinish( m_queue ); CheckForError( ret, "clFinish @ ReleaseObjectsToGL" );
172+
}
173+
void WOCL::Finish() {
174+
ret = clFinish( m_queue ); CheckForError( ret, "clFinish" );
172175
}

NBody OpenCL/WOCL.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ class WOCL {
103103
void ExecuteKernel();
104104
void AcquireObjectsFromGLAndFinish( cl_uint num, cl_mem *objects );
105105
void ReleaseObjectsToGLAndFinish( cl_uint num, cl_mem *objects );
106+
void Finish();
106107

107108
void SetAndAllocKernelArgument( int idx, size_t size );
108109
template<typename T> void SetKernelArgument( int idx, T *parameter ) {

NBody OpenCL/gpu.cpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ void gpu( info_t *info ) {
2525
float *V = (float *) calloc( info->n, sizeof(float) );
2626
generateCoordinates( X, Y, Z, M, info );
2727

28-
t.Tic();
28+
t.TicSimple();
2929
gpu.CreateAndBuildKernel( "res/kernelFloat1.cl", "kernelFloat1" );
3030

3131
// Device alokacija in kopiranje podatkov
@@ -70,7 +70,8 @@ void gpu( info_t *info ) {
7070
gpu.CopyDeviceToHost( &devY, Y, info->n*sizeof(float) );
7171
gpu.CopyDeviceToHost( &devZ, Z, info->n*sizeof(float) );
7272

73-
printf( "Cas izvajanja: %lf\n", t.Toc() );
73+
gpu.Finish();
74+
printf( "Time: %.3lf\n", t.TocSimple() );
7475
checkResults( X, Y, Z, info->n );
7576

7677
#pragma region Cleanup
@@ -93,7 +94,7 @@ void gpuVec( info_t *info ) {
9394
float *V = (float *) calloc( info->n, 4 * sizeof(float) );
9495
generateCoordinatesFloat4( Coord, info );
9596

96-
t.Tic( );
97+
t.TicSimple( );
9798
gpu.CreateAndBuildKernel( "res/kernelVec.cl", "kernelVec" );
9899

99100
// Device alokacija in kopiranje podatkov
@@ -118,7 +119,8 @@ void gpuVec( info_t *info ) {
118119
// Prenos rezultatov na gostitelja
119120
gpu.CopyDeviceToHost( &devCoord, Coord, info->n*sizeof(cl_float4) );
120121

121-
printf( "Cas izvajanja: %lf\n", t.Toc() );
122+
gpu.Finish( );
123+
printf( "Time: %.3lf\n", t.TocSimple() );
122124
checkResultsFloat4( Coord, info->n );
123125

124126
free( V );
@@ -137,7 +139,7 @@ void gpuVecLocal( info_t *info ) {
137139
float *V = (float *) calloc( info->n, 4 * sizeof(float) );
138140
generateCoordinatesFloat4( Coord, info );
139141

140-
t.Tic( );
142+
t.TicSimple( );
141143
gpu.CreateAndBuildKernel( "res/kernelVecLocal.cl", "kernelVecLocal" );
142144

143145
// Device alokacija in kopiranje podatkov
@@ -163,7 +165,8 @@ void gpuVecLocal( info_t *info ) {
163165
// Prenos rezultatov na gostitelja
164166
gpu.CopyDeviceToHost( &devCoord, Coord, info->n*sizeof(cl_float4) );
165167

166-
printf( "Cas izvajanja: %lf\n", t.Toc( ) );
168+
gpu.Finish();
169+
printf( "Time: %.3lf\n", t.TocSimple( ) );
167170
checkResultsFloat4( Coord, info->n );
168171

169172
free( V );

0 commit comments

Comments
 (0)