/*
* Copyright 2012 Phil Pratt-Szeliga and other contributors
* http://chirrup.org/
*
* See the file LICENSE for copying permission.
*/
package org.trifort.rootbeer.testcases.rootbeertest.gpurequired;
import java.awt.Robot;
import org.trifort.rootbeer.runtime.Kernel;
import org.trifort.rootbeer.runtime.RootbeerGpu;
public class BarrierRunOnGpu implements Kernel {
private int[] m_array;
private int m_threadId;
public BarrierRunOnGpu(int[] array, int thread_id){
m_array = array;
m_threadId = thread_id;
}
public void gpuMethod() {
if(RootbeerGpu.isOnGpu()){
int value = m_array[m_threadId];
RootbeerGpu.syncthreads();
int len = m_array.length;
m_array[len - m_threadId - 1] = value;
}
}
public boolean compare(BarrierRunOnGpu rhs) {
int[] array = rhs.m_array;
for(int i = 0; i < array.length; ++i ){
if(array[i] != i){
System.out.println("failure at: "+i+" array[i]: "+array[i]);
return false;
}
}
return true;
}
}