diff options
Diffstat (limited to 'benchmarks/CUDA/STO/cust.h')
| -rw-r--r-- | benchmarks/CUDA/STO/cust.h | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/benchmarks/CUDA/STO/cust.h b/benchmarks/CUDA/STO/cust.h new file mode 100644 index 0000000..92219de --- /dev/null +++ b/benchmarks/CUDA/STO/cust.h @@ -0,0 +1,153 @@ +#ifndef CUST_H
+#define CUST_H
+/*===========================================================================
+
+ CUSTOMIZATION
+
+* Copyright (c) 2008, NetSysLab at the University of British Columbia
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* * Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in the
+* documentation and/or other materials provided with the distribution.
+* * Neither the name of the University nor the
+* names of its contributors may be used to endorse or promote products
+* derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY NetSysLab ``AS IS'' AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL NetSysLab BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+DESCRIPTION
+ Configuration file.
+
+===========================================================================*/
+
+
+/*===========================================================================
+
+ PUBLIC DATA DECLARATIONS
+
+===========================================================================*/
+
+/* NOTE: Whenever you change anything in this file, you have to rebuild
+ the project (Build->RebuildSolution) to take the effects. running directly
+ using Debug->RunWithoutDebugging will not recompile the solution with the
+ new parameters. */
+
+
+/* ------------------------------------------------------------------
+** GENERAL FEATURES
+** ------------------------------------------------------------------ */
+
+// Use shared memory implementation. Note that the total size of the test
+// must not exceed 96MB. This will be debugged later on.
+#define FEATURE_SHARED_MEMORY
+
+// Use pinned memory pages.
+#define FEATURE_PINNED_MODE
+
+// Hash size returned is trimmed to save bandwidth in the copy back.
+// Check md5.h for the actual hash size returned.
+#define FEATURE_REDUCED_HASH_SIZE
+
+// This feature guesses at run time the best execution context the GPU will
+// run within
+//#define FEATURE_DYNAMIC_EXEC_CONTEXT
+
+#ifdef FEATURE_DYNAMIC_EXEC_CONTEXT
+// when in dynamic execution context setting, this feature will enable
+// the algorithm that maximizes the number of threads rather than chunk size.
+//#define FEATURE_MAXIMIZE_NUM_OF_THREADS
+#endif
+
+// Tests to run
+// To run the overlap test instead of the original one.
+#define FEATURE_RUN_OVERLAP_TEST
+
+// Turn on to run SHA1, otherwise it will run MD5
+#define FEATURE_RUN_SHA1
+
+// Enable the multi-thread version for the CPU functions on windows
+//#define FEATURE_WIN32_THREADS
+
+// Enable the multi-thread version for the CPU functions on Linux (with pthreads)
+//#define FEATURE_PTHREADS
+
+/* ------------------------------------------------------------------
+** SANITY CHECKS
+** ------------------------------------------------------------------ */
+
+
+
+/* ------------------------------------------------------------------
+** CONSTANTS
+** ------------------------------------------------------------------ */
+#ifdef FEATURE_DYNAMIC_EXEC_CONTEXT
+ #define MAX_THREADS_PER_BLOCK 192
+ #define MAX_BLOCKS_PER_GRID (32 * 1024)
+ #define MAX_NUM_OF_THREADS (MAX_THREADS_PER_BLOCK*MAX_BLOCKS_PER_GRID)
+ #define BASIC_CHUNK_SIZE 64
+ #define MAX_CHUNK_SIZE 2048
+ #define NUM_OF_MULTIPROCESSORS 4
+#endif /* FEATURE_DYNAMIC_EXEC_CONTEXT */
+
+#ifdef FEATURE_REDUCED_HASH_SIZE
+ #define MD5_HASH_SIZE 4
+ #define SHA1_HASH_SIZE 4
+#else
+ #define MD5_HASH_SIZE 16
+ #define SHA1_HASH_SIZE 20
+#endif // FEATURE_REDUCED_HASH_SIZE
+
+
+#ifdef FEATURE_RUN_OVERLAP_TEST
+
+// THREADS_PER_BLOCK x CHUNK_SIZE should be < 16K if FEATURE_SHARED_MEMORY
+ #define THREADS_PER_BLOCK 128
+ #define BLOCKS_PER_GRID 384//32 //1024//16//384
+ #define TOTAL_NUM_OF_THREADS ( THREADS_PER_BLOCK * BLOCKS_PER_GRID )
+
+// Chunk size must be multiple of 4.
+ #define CHUNK_SIZE (52)
+ //#define CHUNK_SIZE (1024-12)
+
+// Offset must be multiple of 4.
+ #define OFFSET (4)
+
+// Size to be allocated for the original interface tests
+ #define TEST_MEM_SIZE_OVERLAP (TOTAL_NUM_OF_THREADS * OFFSET + \
+ CHUNK_SIZE - OFFSET)
+
+#else
+
+ #define THREADS_PER_BLOCK 192
+ #define BLOCKS_PER_GRID 512
+ #define TOTAL_NUM_OF_THREADS ( THREADS_PER_BLOCK * BLOCKS_PER_GRID )
+
+// Currently chunk size must be of the form (64*i - 12). 12 is reserved for
+// padding issues.
+ //#define CHUNK_SIZE (64-12)
+ //#define CHUNK_SIZE (128-12)
+ //#define CHUNK_SIZE (256-12)
+ //#define CHUNK_SIZE (512-12)
+ #define CHUNK_SIZE (1024-12)
+ //#define CHUNK_SIZE (2048-12)
+
+// Size to be allocated for the tests
+ #define TEST_MEM_SIZE (CHUNK_SIZE * TOTAL_NUM_OF_THREADS)
+
+#endif /* FEATURE_RUN_OVERLAP_TEST */
+
+#endif /* CUST_H */
|
