public LongPointer asLongPointer() { return new LongPointer(this); }
/** * Creates one by one a new {@link LongPointer} for each {@code long[]}, * and writes them into the native {@code void*} array. * * @param array the array of {@code long[]} to read from * @return this */ public PointerPointer<P> put(long[] ... array) { pointerArray = (P[])new LongPointer[array.length]; for (int i = 0; i < array.length; i++) { pointerArray[i] = array[i] != null ? (P)new LongPointer(array[i]) : null; } return put(pointerArray); } /**
/** * * @param data * @param copy */ public BaseDataBuffer(long[] data, boolean copy) { allocationMode = AllocUtil.getAllocationModeFromContext(); initTypeAndSize(); pointer = new LongPointer(data); setIndexer(LongIndexer.create((LongPointer) pointer)); length = data.length; underlyingLength = data.length; }
/** * Create a data buffer from * the given length * * @param buffer * @param length */ public BaseDataBuffer(ByteBuffer buffer, long length) { if (length < 1) throw new IllegalArgumentException("Length must be >= 1"); initTypeAndSize(); this.length = length; allocationMode = AllocUtil.getAllocationModeFromContext(); if (dataType() == Type.DOUBLE) { pointer = new DoublePointer(buffer.asDoubleBuffer()); setIndexer(DoubleIndexer.create((DoublePointer) pointer)); } else if (dataType() == Type.FLOAT) { pointer = new FloatPointer(buffer.asFloatBuffer()); setIndexer(FloatIndexer.create((FloatPointer) pointer)); } else if (dataType() == Type.INT) { pointer = new IntPointer(buffer.asIntBuffer()); setIndexer(IntIndexer.create((IntPointer) pointer)); } else if (dataType() == Type.LONG) { pointer = new LongPointer(buffer.asLongBuffer()); setIndexer(LongIndexer.create((LongPointer) pointer)); } // log.info("Creating new buffer of size: {}; dtype: {}; D", length, dataType()); }
public NativeRandom(long seed, long numberOfElements) { this.amplifier = seed; this.generation = 1; this.seed = seed; this.numberOfElements = numberOfElements; nativeOps = NativeOpsHolder.getInstance().getDeviceNativeOps(); stateBuffer = Nd4j.getDataBufferFactory().createDouble(numberOfElements); init(); hostPointer = new LongPointer(stateBuffer.addressPointer()); deallocator = NativeRandomDeallocator.getInstance(); pack = new NativePack(statePointer.address(), statePointer); deallocator.trackStatePointer(pack); }
public void pointerIndexerByGlobalType(Type currentType) { if (currentType == Type.LONG) { pointer = new LongPointer(length()); setIndexer(LongRawIndexer.create((LongPointer) pointer)); type = Type.LONG; } else if (currentType == Type.INT) { pointer = new IntPointer(length()); setIndexer(IntIndexer.create((IntPointer) pointer)); type = Type.INT; } else { if (DataTypeUtil.getDtypeFromContext() == Type.DOUBLE) { pointer = new DoublePointer(length()); indexer = DoubleIndexer.create((DoublePointer) pointer); } else if (DataTypeUtil.getDtypeFromContext() == Type.FLOAT) { pointer = new FloatPointer(length()); setIndexer(FloatIndexer.create((FloatPointer) pointer)); } else if (DataTypeUtil.getDtypeFromContext() == Type.LONG) { pointer = new LongPointer(length()); setIndexer(LongIndexer.create((LongPointer) pointer)); } } }
/** * * @param length * @param elementSize */ public BaseDataBuffer(long length, int elementSize) { if (length < 1) throw new IllegalArgumentException("Length must be >= 1"); initTypeAndSize(); allocationMode = AllocUtil.getAllocationModeFromContext(); this.length = length; this.underlyingLength = length; this.elementSize = (byte) elementSize; if (dataType() == Type.DOUBLE) { pointer = new DoublePointer(length); indexer = DoubleIndexer.create((DoublePointer) pointer); } else if (dataType() == Type.FLOAT) { pointer = new FloatPointer(length); setIndexer(FloatIndexer.create((FloatPointer) pointer)); } else if (dataType() == Type.INT) { pointer = new IntPointer(length); setIndexer(IntIndexer.create((IntPointer) pointer)); } else if (dataType() == Type.LONG) { pointer = new LongPointer(length); setIndexer(LongIndexer.create((LongPointer) pointer)); } // log.info("Creating new buffer of size: {}; dtype: {}; C", length, dataType()); }
fillPointerWithZero(); } else if (dataType() == Type.LONG) { pointer = new LongPointer(length()); setIndexer(LongIndexer.create((LongPointer) pointer));
public LongPointer asLongPointer() { return new LongPointer(this); }
public LongPointer asLongPointer() { return new LongPointer(this); }
public static DataBuffer getPointersBuffer(long[] pointers) { CudaDoubleDataBuffer tempX = new CudaDoubleDataBuffer(pointers.length); AtomicAllocator.getInstance().memcpyBlocking(tempX, new LongPointer(pointers), pointers.length * 8, 0); return tempX; } }
public static DataBuffer getPointersBuffer(long[] pointers) { CudaDoubleDataBuffer tempX = new CudaDoubleDataBuffer(pointers.length); AtomicAllocator.getInstance().memcpyBlocking(tempX, new LongPointer(pointers), pointers.length * 8, 0); return tempX; } }
private Indexer indexerForType(DataBuffer.Type type,Pointer pointer) { switch(type) { case DOUBLE: return DoubleIndexer.create(new DoublePointer(pointer)); case FLOAT: return FloatIndexer.create(new FloatPointer(pointer)); case INT: return IntIndexer.create(new IntPointer(pointer)); case LONG: return LongIndexer.create(new LongPointer(pointer)); default: throw new IllegalArgumentException("Illegal type " + type); } }
public NativeRandom(long seed, long numberOfElements) { this.amplifier = seed; this.generation = 1; this.seed = seed; this.numberOfElements = numberOfElements; nativeOps = NativeOpsHolder.getInstance().getDeviceNativeOps(); stateBuffer = Nd4j.getDataBufferFactory().createDouble(numberOfElements); init(); hostPointer = new LongPointer(stateBuffer.addressPointer()); deallocator = NativeRandomDeallocator.getInstance(); pack = new NativePack(statePointer.address(), statePointer); deallocator.trackStatePointer(pack); }
/** Returns {@link #tensor_data()} wrapped in a {@link Buffer} of appropriate type starting at given index. */ public <B extends Buffer> B createBuffer(long index) { BytePointer ptr = tensor_data(); long size = TotalBytes(); switch (dtype()) { case DT_COMPLEX64: case DT_FLOAT: return (B)new FloatPointer(ptr).position(index).capacity(size/4).asBuffer(); case DT_DOUBLE: return (B)new DoublePointer(ptr).position(index).capacity(size/8).asBuffer(); case DT_QINT32: case DT_INT32: return (B)new IntPointer(ptr).position(index).capacity(size/4).asBuffer(); case DT_BOOL: case DT_QUINT8: case DT_UINT8: case DT_QINT8: case DT_INT8: return (B)ptr.position(index).capacity(size).asBuffer(); case DT_BFLOAT16: case DT_INT16: return (B)new ShortPointer(ptr).position(index).capacity(size/2).asBuffer(); case DT_INT64: return (B)new LongPointer(ptr).position(index).capacity(size/8).asBuffer(); case DT_STRING: default: assert false; } return null; }
LongPointer pointer = new LongPointer(data); Pointer srcPtr = new CudaPointer(pointer.address() + (dstOffset * elementSize));
LongPointer pointer = new LongPointer(LongUtils.toLongs(data)); Pointer srcPtr = new CudaPointer(pointer.address() + (dstOffset * elementSize));
case DT_BFLOAT16: return (I)UShortIndexer.create(new ShortPointer(ptr).capacity(size/2), sizes, strides, direct).indexable(this); case DT_INT16: return (I)ShortIndexer.create(new ShortPointer(ptr).capacity(size/2), sizes, strides, direct).indexable(this); case DT_INT64: return (I)LongIndexer.create(new LongPointer(ptr).capacity(size/8), sizes, strides, direct).indexable(this); case DT_STRING: default: assert false;
return array != null ? (I)LongIndexer.create((long[])array, sizes, strides).indexable(this) : direct ? (I)LongIndexer.create((LongBuffer)buffer, sizes, strides).indexable(this) : (I)LongIndexer.create(new LongPointer((LongBuffer)buffer), sizes, strides, false).indexable(this); case DEPTH_FLOAT: return array != null ? (I)FloatIndexer.create((float[])array, sizes, strides).indexable(this)
return array != null ? (I)LongIndexer.create((long[])array, sizes, strides).indexable(this) : direct ? (I)LongIndexer.create((LongBuffer)buffer, sizes, strides).indexable(this) : (I)LongIndexer.create(new LongPointer((LongBuffer)buffer), sizes, strides, false).indexable(this); case DEPTH_FLOAT: return array != null ? (I)FloatIndexer.create((float[])array, sizes, strides).indexable(this)