Commit d6945662 authored by Tomáš Oberhuber's avatar Tomáš Oberhuber
Browse files

Finished CUDA parallel reduction with documentation.

Adding Doxyfile.
parent ad22b77b
Loading
Loading
Loading
Loading

src/Doxyfile

0 → 100644
+1514 −0

File added.

Preview size limit exceeded, changes collapsed.

+4 −2
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ endif

tnl_unit_tests_sources = tnl-unit-tests.cpp
tnl_benchmarks_sources = tnl-benchmarks.cpp
tnl_benchmarks_headers = tnl-benchmarks.h

check_PROGRAMS = tnl-unit-tests \
                 tnl-benchmarks
@@ -57,7 +58,7 @@ tnl_unit_tests_SOURCES = $(tnl_unit_tests_sources)
tnl_unit_tests_LDADD = libtnl-0.1.la \
                       core/libcore-tests.la

tnl_benchmarks_SOURCES = $(tnl_benchmarks_sources)
tnl_benchmarks_SOURCES = $(tnl_benchmarks_sources) $(tnl_benchmarks_headers)
tnl_benchmarks_LDADD = libtnl-0.1.la

if BUILD_DBG
@@ -69,4 +70,5 @@ endif



TESTS = tnl-benchmarks
 No newline at end of file
TESTS = tnl-benchmarks \
        tnl-unit-tests
 No newline at end of file
+426 −97

File changed.

Preview size limit exceeded, changes collapsed.

+156 −72
Original line number Diff line number Diff line
@@ -68,155 +68,239 @@ bool tnlCUDAReductionSum( const int size,
 */
bool tnlCUDASimpleReduction5Min( const int size,
                                 const int* input,
                                 int& result );
                                 int& result,
                                 int* device_aux = 0 );
bool tnlCUDASimpleReduction5Max( const int size,
                                 const int* input,
                                 int& result );
                                 int& result,
                                 int* device_aux = 0 );
bool tnlCUDASimpleReduction5Sum( const int size,
                                 const int* input,
                                 int& result );
                                 int& result,
                                 int* device_aux = 0 );
bool tnlCUDASimpleReduction5Min( const int size,
                                 const float* input,
                                 float& result);
                                 float& result,
                                 float* device_aux = 0 );
bool tnlCUDASimpleReduction5Max( const int size,
                                 const float* input,
                                 float& result);
                                 float& result,
                                 float* device_aux = 0 );
bool tnlCUDASimpleReduction5Sum( const int size,
                                 const float* input,
                                 float& result);
                                 float& result,
                                 float* device_aux = 0 );
bool tnlCUDASimpleReduction5Min( const int size,
                                 const double* input,
                                 double& result);
                                 double& result,
                                 double* device_aux = 0 );
bool tnlCUDASimpleReduction5Max( const int size,
                                 const double* input,
                                 double& result );
                                 double& result,
                                 double* device_aux = 0  );
bool tnlCUDASimpleReduction5Sum( const int size,
                                 const double* input,
                                 double& result );
                                 double& result,
                                 double* device_aux = 0  );

/*
 * Simple reduction 4
 */
bool tnlCUDASimpleReduction4Min( const int size,
                                 const int* input,
                                 int& result );
                                 int& result,
                                 int* device_aux = 0  );
bool tnlCUDASimpleReduction4Max( const int size,
                                 const int* input,
                                 int& result );
                                 int& result,
                                 int* device_aux = 0  );
bool tnlCUDASimpleReduction4Sum( const int size,
                                 const int* input,
                                 int& result );
                                 int& result,
                                 int* device_aux = 0  );
bool tnlCUDASimpleReduction4Min( const int size,
                                 const float* input,
                                 float& result);
                                 float& result,
                                 float* device_aux = 0 );
bool tnlCUDASimpleReduction4Max( const int size,
                                 const float* input,
                                 float& result);
                                 float& result,
                                 float* device_aux = 0 );
bool tnlCUDASimpleReduction4Sum( const int size,
                                 const float* input,
                                 float& result);
                                 float& result,
                                 float* device_aux = 0 );
bool tnlCUDASimpleReduction4Min( const int size,
                                 const double* input,
                                 double& result);
                                 double& result,
                                 double* device_aux = 0 );
bool tnlCUDASimpleReduction4Max( const int size,
                                 const double* input,
                                 double& result );
                                 double& result,
                                 double* device_aux = 0  );
bool tnlCUDASimpleReduction4Sum( const int size,
                                 const double* input,
                                 double& result );
                                 double& result,
                                 double* device_aux = 0  );

/*
 * Simple reduction 3
 */
bool tnlCUDASimpleReduction3Min( const int size,
                                 const int* input,
                          int& result );
                                 int& result,
                                 int* device_aux = 0  );
bool tnlCUDASimpleReduction3Max( const int size,
                                 const int* input,
                          int& result );
                                 int& result,
                                 int* device_aux = 0  );
bool tnlCUDASimpleReduction3Sum( const int size,
                                 const int* input,
                          int& result );
                                 int& result,
                                 int* device_aux = 0  );
bool tnlCUDASimpleReduction3Min( const int size,
                                 const float* input,
                            float& result);
                                 float& result,
                                 float* device_aux = 0 );
bool tnlCUDASimpleReduction3Max( const int size,
                                 const float* input,
                            float& result);
                                 float& result,
                                 float* device_aux = 0 );
bool tnlCUDASimpleReduction3Sum( const int size,
                                 const float* input,
                            float& result);
                                 float& result,
                                 float* device_aux = 0 );
bool tnlCUDASimpleReduction3Min( const int size,
                                 const double* input,
                             double& result);
                                 double& result,
                                 double* device_aux = 0 );
bool tnlCUDASimpleReduction3Max( const int size,
                                 const double* input,
                             double& result );
                                 double& result,
                                 double* device_aux = 0  );
bool tnlCUDASimpleReduction3Sum( const int size,
                                 const double* input,
                             double& result );
                                 double& result,
                                 double* device_aux = 0  );

/*
 * Simple reduction 2
 */
bool tnlCUDASimpleReduction2Min( const int size,
                                 const int* input,
                          int& result );
                                 int& result,
                                 int* device_aux = 0  );
bool tnlCUDASimpleReduction2Max( const int size,
                                 const int* input,
                          int& result );
                                 int& result,
                                 int* device_aux = 0  );
bool tnlCUDASimpleReduction2Sum( const int size,
                                 const int* input,
                          int& result );
                                 int& result,
                                 int* device_aux = 0  );
bool tnlCUDASimpleReduction2Min( const int size,
                                 const float* input,
                            float& result);
                                 float& result,
                                 float* device_aux = 0 );
bool tnlCUDASimpleReduction2Max( const int size,
                                 const float* input,
                            float& result);
                                 float& result,
                                 float* device_aux = 0 );
bool tnlCUDASimpleReduction2Sum( const int size,
                                 const float* input,
                            float& result);
                                 float& result,
                                 float* device_aux = 0 );
bool tnlCUDASimpleReduction2Min( const int size,
                                 const double* input,
                             double& result);
                                 double& result,
                                 double* device_aux = 0 );
bool tnlCUDASimpleReduction2Max( const int size,
                                 const double* input,
                             double& result );
                                 double& result,
                                 double* device_aux = 0  );
bool tnlCUDASimpleReduction2Sum( const int size,
                                 const double* input,
                             double& result );
                                 double& result,
                                 double* device_aux = 0  );

/*
 * Simple reduction 1
 */
bool tnlCUDASimpleReduction1Min( const int size,
                                 const int* input,
                          int& result );
                                 int& result,
                                 int* device_aux = 0 );
bool tnlCUDASimpleReduction1Max( const int size,
                                 const int* input,
                          int& result );
                                 int& result,
                                 int* device_aux = 0 );
bool tnlCUDASimpleReduction1Sum( const int size,
                                 const int* input,
                          int& result );
                                 int& result,
                                 int* device_aux = 0 );
bool tnlCUDASimpleReduction1Min( const int size,
                                 const float* input,
                            float& result);
                                 float& result,
                                 float* device_aux = 0 );
bool tnlCUDASimpleReduction1Max( const int size,
                                 const float* input,
                            float& result);
                                 float& result,
                                 float* device_aux = 0 );
bool tnlCUDASimpleReduction1Sum( const int size,
                                 const float* input,
                            float& result);
                                 float& result,
                                 float* device_aux = 0 );
bool tnlCUDASimpleReduction1Min( const int size,
                                 const double* input,
                             double& result);
                                 double& result,
                                 double* device_aux = 0 );
bool tnlCUDASimpleReduction1Max( const int size,
                                 const double* input,
                             double& result );
                                 double& result,
                                 double* device_aux = 0 );
bool tnlCUDASimpleReduction1Sum( const int size,
                                 const double* input,
                             double& result );
                                 double& result,
                                 double* device_aux = 0 );


/********************************************************************/

int testReduction1( int size,
                    int* drp_input,
                    int* drp_output,
                    int* output );

int testReduction2( int size,
                    int* drp_input,
                    int* drp_output,
                    int* output );

int testReduction3( int size,
                    int* drp_input,
                    int* drp_output,
                    int* output );

int testReduction4( int size,
                    int* drp_input,
                    int* drp_output,
                    int* output );

void reductionKernel5Switch(int* dp_output, int* dp_input, uint gridSz, uint blockSz, uint shmemBB);


int testReduction5( int size,
                    int* drp_input,
                    int* drp_output,
                    int* output );

inline void reductionKernel6Switch(uint psize, int* dp_output, int* dp_input, uint gridSz, uint blockSz, uint shmemBB);

int testReduction6( int size,
                    int* drp_input,
                    int* drp_output,
                    int* output );



#endif /* TNLCUDAKERNELS_CU_H_ */
+1152 −920

File changed.

Preview size limit exceeded, changes collapsed.

Loading