package jcuda.jcublas.ops;
import org.junit.Ignore;
import org.junit.Test;
import org.nd4j.jita.allocator.impl.AtomicAllocator;
import org.nd4j.jita.conf.CudaEnvironment;
import org.nd4j.linalg.api.ndarray.INDArray;
import org.nd4j.linalg.factory.Nd4j;
import static org.junit.Assert.assertEquals;
/**
* This unit should be run manually only, because it relies on init-time variables, and they can't be changed in runtime.
*
* @author raver119@gmail.com
*/
@Ignore
public class DevicesTests {
@Test
public void testOtherDevice1() {
CudaEnvironment.getInstance().getConfiguration().useDevices(1, 2);
INDArray array = Nd4j.create(1000000);
for (int i = 0; i < 10000; i++) {
array.addi(10f);
}
assertEquals(1, AtomicAllocator.getInstance().getAllocationPoint(array).getDeviceId());
}
@Test
public void testOtherDevice2() {
CudaEnvironment.getInstance().getConfiguration().useDevices(0);
INDArray array = Nd4j.create(1000000);
for (int i = 0; i < 10000; i++) {
array.addi(10f);
}
assertEquals(0, AtomicAllocator.getInstance().getAllocationPoint(array).getDeviceId());
}
}