From be3b79409a78aa7fc3b479ff57edcfbbb83f3eac Mon Sep 17 00:00:00 2001 From: Ben Sander Date: Thu, 16 Jun 2016 09:29:03 -0500 Subject: [PATCH] Update launch_bounds test --- tests/src/launch_bounds/hip_launch_bounds.cpp | 69 ++++++++++++++++--- 1 file changed, 58 insertions(+), 11 deletions(-) diff --git a/tests/src/launch_bounds/hip_launch_bounds.cpp b/tests/src/launch_bounds/hip_launch_bounds.cpp index cba9af27c8..78226e8b00 100644 --- a/tests/src/launch_bounds/hip_launch_bounds.cpp +++ b/tests/src/launch_bounds/hip_launch_bounds.cpp @@ -19,51 +19,98 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -// Simple test for memset. -// Also serves as a template for other tests. + + +// Test launch bounds and initialization conditions. #include "hip_runtime.h" #include "test_common.h" +int p_blockSize = 256; + __global__ void -myKern(hipLaunchParm lp, int *C, const int *A, int N) +__launch_bounds__(256, 2) +myKern(hipLaunchParm lp, int *C, const int *A, int N, int xfactor) { - int tid = hipThreadIdx_x; + int tid = (hipBlockIdx_x * hipBlockDim_x + hipThreadIdx_x); - C[tid] = A[tid]; + if (tid < N) { + C[tid] = A[tid]; + } }; +void parseMyArguments(int argc, char *argv[]) +{ + int more_argc = HipTest::parseStandardArguments(argc, argv, false); + // parse args for this test: + for (int i = 1; i < more_argc; i++) { + const char *arg = argv[i]; + + if (!strcmp(arg, "--blockSize")) { + if (++i >= argc || !HipTest::parseInt(argv[i], &p_blockSize)) { + failed("Bad peerDevice argument"); + } + } else { + failed("Bad argument '%s'", arg); + } + }; +}; + + + int main(int argc, char *argv[]) { - HipTest::parseStandardArguments(argc, argv, true); + parseMyArguments(argc, argv); size_t Nbytes = N*sizeof(int); int *A_d, *C_d, *A_h, *C_h; HIPCHECK ( hipMalloc(&A_d, Nbytes) ); HIPCHECK ( hipMalloc(&C_d, Nbytes) ); - A_h = (int*)malloc (Nbytes); + A_h = (int*)malloc (Nbytes); C_h = (int*)malloc (Nbytes); + for (int i=0; i