@Override public void memcpy(DataBuffer dstBuffer, DataBuffer srcBuffer) { val perfD = PerformanceTracker.getInstance().helperStartTransaction(); Pointer.memcpy(dstBuffer.addressPointer(), srcBuffer.addressPointer(), srcBuffer.length() * srcBuffer.getElementSize()); PerformanceTracker.getInstance().helperRegisterTransaction(0, perfD, srcBuffer.length() * srcBuffer.getElementSize(), MemcpyDirection.HOST_TO_HOST); }
@Override public INDArray convertToFloats() { if (data.dataType() == DataBuffer.Type.FLOAT) return this; val factory = Nd4j.getNDArrayFactory(); val buffer = Nd4j.createBuffer(new long[]{this.length()}, DataBuffer.Type.FLOAT); factory.convertDataEx(convertType(data.dataType()), this.data().addressPointer(), DataBuffer.TypeEx.FLOAT, buffer.addressPointer(), buffer.length()); return Nd4j.createArrayFromShapeBuffer(buffer, this.shapeInformation); }
@Override public INDArray convertToDoubles() { if (data.dataType() == DataBuffer.Type.DOUBLE) return this; val factory = Nd4j.getNDArrayFactory(); val buffer = Nd4j.createBuffer(new long[]{this.length()}, DataBuffer.Type.DOUBLE); factory.convertDataEx(convertType(data.dataType()), this.data().addressPointer(), DataBuffer.TypeEx.DOUBLE, buffer.addressPointer(), buffer.length()); return Nd4j.createArrayFromShapeBuffer(buffer, this.shapeInformation); }
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); }
@Override public void convertDataEx(DataBuffer.TypeEx typeSrc, DataBuffer source, DataBuffer.TypeEx typeDst, DataBuffer target) { convertDataEx(typeSrc, source.addressPointer(), typeDst, target.addressPointer(), target.length()); }
@Override public void memcpy(DataBuffer dstBuffer, DataBuffer srcBuffer) { Pointer.memcpy(dstBuffer.addressPointer(), srcBuffer.addressPointer(), srcBuffer.length() * srcBuffer.getElementSize()); }
Pointer.memcpy(dstBuffer.addressPointer(), src, size); long size = srcBuffer.getElementSize() * srcBuffer.length(); Pointer.memcpy(dstBuffer.addressPointer(), srcBuffer.addressPointer(), size); dstPoint.tickHostWrite(); Pointer.memcpy(dstBuffer.addressPointer(), srcBuffer.addressPointer(), srcBuffer.length() * srcBuffer.getElementSize()); } else {
Pointer.memcpy(dstBuffer.addressPointer(), src, size); long size = srcBuffer.getElementSize() * srcBuffer.length(); Pointer.memcpy(dstBuffer.addressPointer(), srcBuffer.addressPointer(), size); dstPoint.tickHostWrite(); Pointer.memcpy(dstBuffer.addressPointer(), srcBuffer.addressPointer(), srcBuffer.length() * srcBuffer.getElementSize()); } else {
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); }
@Override public void convertDataEx(DataBuffer.TypeEx typeSrc, Pointer source, DataBuffer.TypeEx typeDst, DataBuffer buffer) { Pointer srcPtr = null; Pointer dstPtr = null; long size = 0; long ssize = 0; val stream = ((CudaContext) AtomicAllocator.getInstance().getDeviceContext().getContext()).getOldStream(); if (buffer instanceof CompressedDataBuffer) { // compressing size = ((CompressedDataBuffer) buffer).getCompressionDescriptor().getCompressedLength(); ssize = ((CompressedDataBuffer) buffer).getCompressionDescriptor().getOriginalLength(); srcPtr = nativeOps.mallocDevice(ssize, null, 0); dstPtr = nativeOps.mallocDevice(size, null, 0); nativeOps.memcpyAsync(srcPtr, source, ssize, CudaConstants.cudaMemcpyHostToDevice, stream); } else { // decompressing throw new UnsupportedOperationException(); } convertDataEx(typeSrc, srcPtr, typeDst, dstPtr, buffer.length()); nativeOps.memcpyAsync(buffer.addressPointer(), dstPtr, size, CudaConstants.cudaMemcpyHostToHost, stream); stream.synchronize(); if (buffer instanceof CompressedDataBuffer) { nativeOps.freeDevice(srcPtr, null); nativeOps.freeDevice(dstPtr, null); } }
(DoublePointer) ret.data().addressPointer(), (LongPointer) ret.shapeInfoDataBuffer().addressPointer(), new PointerPointer(new Pointer[] {null}), new PointerPointer(new Pointer[] {null})); } else if (ret.data().dataType() == DataBuffer.Type.FLOAT) { nativeOps.specialConcatFloat(dummy, dimension, toConcat.length, dataPointers, shapeInfoPointers, (FloatPointer) ret.data().addressPointer(), (LongPointer) ret.shapeInfoDataBuffer().addressPointer(), new PointerPointer(new Pointer[] {null}), new PointerPointer(new Pointer[] {null})); (ShortPointer) ret.data().addressPointer(), (LongPointer) ret.shapeInfoDataBuffer().addressPointer(), new PointerPointer(new Pointer[]{null}), new PointerPointer(new Pointer[]{null})); } else {
val size = ((CompressedDataBuffer) source).getCompressionDescriptor().getCompressedLength(); srcPtr = ws.alloc(size, MemoryKind.DEVICE, DataBuffer.Type.HALF, false); nativeOps.memcpyAsync(srcPtr, source.addressPointer(), size, CudaConstants.cudaMemcpyHostToHost, stream); val size = ((CompressedDataBuffer) source).getCompressionDescriptor().getCompressedLength(); srcPtr = nativeOps.mallocDevice(size, null, 0); nativeOps.memcpyAsync(srcPtr, source.addressPointer(), size, CudaConstants.cudaMemcpyHostToHost, stream); stream.synchronize(); } else nativeOps.memcpyAsync(target.addressPointer(), dstPtr, target.capacity(), CudaConstants.cudaMemcpyHostToHost, stream);
Nd4j.getNDArrayFactory().convertDataEx(getBufferTypeEx(buffer), buffer.addressPointer(), DataBuffer.TypeEx.FTHRESHOLD, pointer, buffer.length());
Nd4j.getNDArrayFactory().convertDataEx(getBufferTypeEx(buffer), buffer.addressPointer(), DataBuffer.TypeEx.FTHRESHOLD, pointer, buffer.length());
(IntPointer) worksizeBuffer.addressPointer() // we intentionally use host pointer here );
(IntPointer) worksizeBuffer.addressPointer() // we intentionally use host pointer here );
(IntPointer) worksizeBuffer.addressPointer() // we intentionally use host pointer here );
(IntPointer) worksizeBuffer.addressPointer() // we intentionally use host pointer here );
(FloatPointer) xAPointer.getDevicePointer(), M, (FloatPointer) xRPointer.getDevicePointer(), (IntPointer)worksizeBuffer.addressPointer() ) ;
int stat = cusolverDnSgesvd_bufferSize(solverDn, M, N, (IntPointer) worksizeBuffer.addressPointer() // we intentionally use host pointer here );