am 3b43f862: Merge "[RenderScript] update the type of offsets for BLAS.BNNM"
* commit '3b43f862d09cf420a36ac372edcfddd4c4a68aa5': [RenderScript] update the type of offsets for BLAS.BNNM
This commit is contained in:
@@ -1554,14 +1554,29 @@ public final class ScriptIntrinsicBLAS extends ScriptIntrinsic {
|
||||
|
||||
|
||||
/**
|
||||
* 8-bit GEMM-like operation for neural networks: C = B.transposed() * A
|
||||
* Calculations are done in 1.10.21 fixed-point format for the final output,
|
||||
* just before there's a shift down to drop the fractional parts. The output
|
||||
* values are gated to 0 to 255 to fit in a byte, but the 10-bit format
|
||||
* gives some headroom to avoid wrapping around on small overflows.
|
||||
*
|
||||
* 8-bit GEMM-like operation for neural networks
|
||||
*
|
||||
* @hide
|
||||
* @param A The input allocation contains matrix A, supported elements type {@link Element#U8}.
|
||||
* @param a_offset The offset for all values in matrix A, e.g A[i,j] = A[i,j] - a_offset. Value should be from 0 to 255.
|
||||
* @param B The input allocation contains matrix B, supported elements type {@link Element#U8}.
|
||||
* @param b_offset The offset for all values in matrix B, e.g B[i,j] = B[i,j] - b_offset. Value should be from 0 to 255.
|
||||
* @param C The input allocation contains matrix C, supported elements type {@link Element#U8}.
|
||||
* @param c_offset The offset for all values in matrix C.
|
||||
* @param c_mult The multiplier for all values in matrix C, e.g C[i,j] = (C[i,j] + c_offset) * c_mult.
|
||||
**/
|
||||
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);
|
||||
|
||||
if (a_offset < 0 || a_offset > 255) {
|
||||
throw new RSRuntimeException("Invalid a_offset passed to BNNM");
|
||||
}
|
||||
if (b_offset < 0 || b_offset > 255) {
|
||||
throw new RSRuntimeException("Invalid b_offset passed to BNNM");
|
||||
}
|
||||
int M = -1, N = -1, K = -1;
|
||||
M = A.getType().getY();
|
||||
N = B.getType().getY();
|
||||
|
||||
@@ -701,8 +701,8 @@ nScriptIntrinsicBLAS_BNNM(JNIEnv *_env, jobject _this, jlong con, jlong id, jint
|
||||
call.M = M;
|
||||
call.N = N;
|
||||
call.K = K;
|
||||
call.a_offset = a_offset;
|
||||
call.b_offset = b_offset;
|
||||
call.a_offset = a_offset & 0xFF;
|
||||
call.b_offset = b_offset & 0xFF;
|
||||
call.c_offset = c_offset;
|
||||
call.c_mult_int = c_mult_int;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user