From 69f2911e04ffb1b19eef1fafb8c040af271f656e Mon Sep 17 00:00:00 2001 From: Tor Aamodt Date: Thu, 15 Jul 2010 18:09:46 -0800 Subject: creating branch for adding support for CUDA 3.x and Fermi [git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 6829] --- benchmarks/CUDA/STO/cust.h | 153 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 benchmarks/CUDA/STO/cust.h (limited to 'benchmarks/CUDA/STO/cust.h') 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 */ -- cgit v1.3