Add BNNM intrinsic.
Change-Id: I05fc9835786455e28d69f2b4ffe70c3292a01404
This commit is contained in:
@@ -949,6 +949,17 @@ public class RenderScript {
|
||||
rsnScriptIntrinsicBLAS_Z(mContext, id, func, TransA, TransB, Side, Uplo, Diag, M, N, K, alphaX, alphaY, A, B, betaX, betaY, C, incX, incY, KL, KU);
|
||||
}
|
||||
|
||||
native void rsnScriptIntrinsicBLAS_BNNM(long con, long id, int M, int N, int K,
|
||||
long A, int a_offset, long B, int b_offset, long C, int c_offset,
|
||||
int c_mult_int);
|
||||
synchronized void nScriptIntrinsicBLAS_BNNM(long id, int M, int N, int K,
|
||||
long A, int a_offset, long B, int b_offset, long C, int c_offset,
|
||||
int c_mult_int) {
|
||||
validate();
|
||||
rsnScriptIntrinsicBLAS_BNNM(mContext, id, M, N, K, A, a_offset, B, b_offset, C, c_offset, c_mult_int);
|
||||
}
|
||||
|
||||
|
||||
|
||||
long mDev;
|
||||
long mContext;
|
||||
|
||||
@@ -176,6 +176,9 @@ public final class ScriptIntrinsicBLAS extends ScriptIntrinsic {
|
||||
private static final int RsBlas_zherk = 141;
|
||||
private static final int RsBlas_zher2k = 142;
|
||||
|
||||
// BLAS extensions start here
|
||||
private static final int RsBlas_bnnm = 1000;
|
||||
|
||||
/**
|
||||
*/
|
||||
public static ScriptIntrinsicBLAS create(RenderScript rs) {
|
||||
@@ -1485,5 +1488,23 @@ public final class ScriptIntrinsicBLAS extends ScriptIntrinsic {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* 8-bit GEMM-like operation for neural networks
|
||||
*
|
||||
* @hide
|
||||
**/
|
||||
public void BNNM(Allocation A, int a_offset, Allocation B, int b_offset, Allocation C, int c_offset, int c_mult) {
|
||||
validateL3(Element.U8(mRS), NO_TRANSPOSE, TRANSPOSE, 0, A, B, C);
|
||||
|
||||
int M = -1, N = -1, K = -1;
|
||||
M = A.getType().getY();
|
||||
N = B.getType().getY();
|
||||
K = A.getType().getX();
|
||||
|
||||
|
||||
mRS.nScriptIntrinsicBLAS_BNNM(getID(mRS), M, N, K, A.getID(mRS), a_offset, B.getID(mRS), b_offset, C.getID(mRS), c_offset, c_mult);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user