package org.trifort.rootbeer.testcases.rootbeertest.kerneltemplate; import org.trifort.rootbeer.runtime.Kernel; import org.trifort.rootbeer.runtime.ThreadConfig; import org.trifort.rootbeer.test.TestKernelTemplate; public class SharedMemoryArraysTest implements TestKernelTemplate { private int threadSize; private int blockSize; public SharedMemoryArraysTest(){ threadSize = 32; blockSize = 2; } @Override public Kernel create() { int subArraySize = 255; int[][][] inputArray = new int[blockSize][threadSize][subArraySize]; for(int i = 0; i < blockSize; ++i){ for(int j = 0; j < threadSize; ++j){ for(int k = 0; k < subArraySize; ++k){ inputArray[i][j][k] = k; } } } int[][][] outputArray = new int[blockSize][threadSize][subArraySize]; return new SharedMemoryArraysRunOnGpu(inputArray, outputArray, subArraySize); } @Override public ThreadConfig getThreadConfig() { return new ThreadConfig(threadSize, 1, 1, blockSize, 1, threadSize * blockSize); } @Override public boolean compare(Kernel original, Kernel from_heap) { SharedMemoryArraysRunOnGpu lhs = (SharedMemoryArraysRunOnGpu) original; SharedMemoryArraysRunOnGpu rhs = (SharedMemoryArraysRunOnGpu) from_heap; return lhs.compare(rhs); } }