public static void assertFloat(INDArray... d2) { for (INDArray d3 : d2) assertFloat(d3); }
public static void assertFloat(INDArray... d2) { for (INDArray d3 : d2) assertFloat(d3); }
/** * Scale a complex ndarray * * @param alpha * @param x * @return */ public static IComplexNDArray sscal(IComplexFloat alpha, IComplexNDArray x) { DataTypeValidation.assertFloat(x); throw new UnsupportedOperationException(); }
/** * Scale a complex ndarray * * @param alpha * @param x * @return */ public static IComplexNDArray sscal(IComplexFloat alpha, IComplexNDArray x) { DataTypeValidation.assertFloat(x); NativeBlas.cscal(x.length(), (org.jblas.ComplexFloat) alpha, x.data().asFloat(), x.offset(), x.majorStride()); return x; }
/** * @param da * @param A * @param B */ public static void axpy(IComplexFloat da, IComplexNDArray A, IComplexNDArray B) { DataTypeValidation.assertFloat(A, B); CublasPointer aCPointer = new CublasPointer(A); CublasPointer bCPointer = new CublasPointer(B); sync(); JCublas2.cublasCaxpy( ContextHolder.getInstance().getHandle(), A.length(), PointerUtil.getPointer(jcuda.cuComplex.cuCmplx(da.realComponent().floatValue(), da.imaginaryComponent().floatValue())), aCPointer.getDevicePointer(), A.majorStride() / 2, bCPointer.getDevicePointer(), B.majorStride() / 2 ); sync(); }
/** * Multiply the given ndarray * by alpha * * @param alpha * @param x * @return */ public static INDArray scal(float alpha, INDArray x) { if(x.data().dataType() == DataBuffer.Type.DOUBLE) return scal((double) alpha,x); DataTypeValidation.assertFloat(x); BLAS.getInstance().sscal( x.length(), alpha, x.data().asFloat(), x.offset(), x.majorStride()); return x; }
/** * Multiply the given ndarray * by alpha * * @param alpha * @param x * @return */ public static INDArray scal(float alpha, INDArray x) { if(x.data().dataType() == DataBuffer.Type.DOUBLE) { return scal((double) alpha,x); } DataTypeValidation.assertFloat(x); BLAS.getInstance().sscal( x.length(), alpha, x.data().asFloat(), x.offset(), x.majorStride()); return x; }
public static INDArray ger(INDArray A, INDArray B, INDArray C, float alpha) { DataTypeValidation.assertFloat(A, B, C); // = alpha * A * transpose(B) + C BLAS.getInstance().sger( A.rows(), // m A.columns(),// n alpha, // alpha A.data().asFloat(), // d_A or x A.rows(), // incx B.data().asFloat(), // dB or y B.rows(), // incy C.data().asFloat(), // dC or A C.rows() // lda ); return C; }
public static INDArray ger(INDArray A, INDArray B, INDArray C, float alpha) { DataTypeValidation.assertFloat(A, B, C); // = alpha * A * transpose(B) + C BLAS.getInstance().sger( A.rows(), // m A.columns(),// n alpha, // alpha A.data().asFloat(), // d_A or x A.majorStride(), // incx B.data().asFloat(), // dB or y B.majorStride(), // incy C.data().asFloat(), // dC or A C.size(0) // lda ); return C; }
/** * Multiply the given ndarray * by alpha * * @param alpha * @param x * @return */ public static INDArray scal(float alpha, INDArray x) { DataTypeValidation.assertFloat(x); sync(); CublasPointer xCPointer = new CublasPointer(x); JCublas2.cublasSscal( ContextHolder.getInstance().getHandle(), x.length(), Pointer.to(new float[]{alpha}), xCPointer.getDevicePointer(), x.majorStride()); sync(); xCPointer.copyToHost(); releaseCublasPointers(xCPointer); return x; }
DataTypeValidation.assertFloat(x, y); sync();
/** * Complex multiplication of an ndarray * * @param alpha * @param x * @return */ public static IComplexNDArray scal(IComplexFloat alpha, IComplexNDArray x) { DataTypeValidation.assertFloat(x); sync(); CublasPointer xCPointer = new CublasPointer(x); JCublas2.cublasCscal( ContextHolder.getInstance().getHandle(), x.length(), PointerUtil.getPointer(jcuda.cuComplex.cuCmplx(alpha.realComponent(), alpha.imaginaryComponent())), xCPointer.getDevicePointer(), 1 ); sync(); xCPointer.copyToHost(); releaseCublasPointers(xCPointer); return x; }
/** * And and scale by the given scalar da * * @param da alpha * @param A the element to add * @param B the matrix to add to */ public static void axpy(float da, INDArray A, INDArray B) { DataTypeValidation.assertFloat(A, B); CublasPointer xAPointer = new CublasPointer(A); CublasPointer xBPointer = new CublasPointer(B); sync(); int aStride = LinearUtil.linearStride(A); int bStride = LinearUtil.linearStride(B); JCublas2.cublasSaxpy( ContextHolder.getInstance().getHandle(), A.length(), Pointer.to(new float[]{da}), xAPointer.getDevicePointer(), aStride, xBPointer.getDevicePointer(), bStride); sync(); xBPointer.copyToHost(); releaseCublasPointers(xAPointer, xBPointer); }
/** * General matrix vector multiplication * * @param A * @param B * @param C * @param alpha * @param beta * @return */ public static INDArray gemv(INDArray A, INDArray B, INDArray C, float alpha, float beta) { DataTypeValidation.assertFloat(A, B, C); BLAS.getInstance().sgemv( "N", A.rows(), A.columns(), alpha, A.data().asFloat(), A.offset(), A.rows(), B.data().asFloat(), B.offset(), C.majorStride(), beta, C.data().asFloat(), C.offset(), C.majorStride()); return C; }
/** * General matrix vector multiplication * * @param A * @param B * @param C * @param alpha * @param beta * @return */ public static INDArray gemv(INDArray A, INDArray B, INDArray C, float alpha, float beta) { DataTypeValidation.assertFloat(A, B, C); BLAS.getInstance().sgemv( "N", A.rows(), A.columns(), alpha, A.data().asFloat(), A.offset(), A.rows(), B.data().asFloat(), B.offset(), C.majorStride(), beta, C.data().asFloat(), C.offset(), C.majorStride()); return C; }
public static INDArray ger(INDArray A, INDArray B, INDArray C, float alpha) { DataTypeValidation.assertFloat(A, B, C); sync(); // = alpha * A * transpose(B) + C CublasPointer aCPointer = new CublasPointer(A); CublasPointer bCPointer = new CublasPointer(B); CublasPointer cCPointer = new CublasPointer(C); JCublas2.cublasSger( ContextHolder.getInstance().getHandle(), A.rows(), // m A.columns(),// n Pointer.to(new float[]{alpha}), // alpha aCPointer.getDevicePointer(), // d_A or x A.rows(), // incx bCPointer.getDevicePointer(), // dB or y B.rows(), // incy cCPointer.getDevicePointer(), // dC or A C.rows() // lda ); sync(); cCPointer.copyToHost(); releaseCublasPointers(aCPointer,bCPointer,cCPointer); return C; }
DataTypeValidation.assertFloat(A, B, C);
IComplexNDArray C, IComplexFloat Alpha) { DataTypeValidation.assertFloat(A, B, C);
DataTypeValidation.assertFloat(A, B);
DataTypeValidation.assertFloat(A, B); if(A.data().dataType() == DataBuffer.Type.DOUBLE) { axpy((double) da, A, B);