tree 343d6956068b1c21e0fc4af018e1322d7685411b
parent b9f02c2f8624bbf0746939e3b2735a1537a567b6
author Usama Arif <usama.arif@linaro.org> 1572347598 +0000
committer Hans Boehm <hboehm@google.com> 1573592297 +0000

ARM64: FP16.ceil() intrinsic for ARMv8

This CL implements an intrinsic for ceil() method with
ARMv8.2 FP16 instructions.

This intrinsic implementation achieves bit-level compatibility with the
original Java implementation android.util.Half.ceil().

The time required in milliseconds to execute the below code on Pixel3:
- Java implementation android.util.Half.ceil():
    - big cluster only: 19447
    - little cluster only: 62638
- arm64 Intrinisic implementation:
    - big cluster only: 14260 (~27% faster)
    - little cluster only: 54387 (~13% faster)

Analysis of this function with simpleperf showed that approximately only
60-65% of the time is spent in libcore.util.FP16.ceil. So the percentage
improvement using intrinsics is likely to be more than the numbers stated
above.

Another reason that the performance improvement with intrinsic is lower
than expected is because the java implementation for values between -1 and
1 (abs < 0x3c00) only requires a few instructions and should almost give
a similar performance to the intrinsic in this case. In the benchmark function
below, 46.8% of the values tested are between -1 and 1.

public static short benchmarkCeil(){
    short ret = 0;
    long before = 0;
    long after = 0;
    before = System.currentTimeMillis();
    for(int i = 0; i < 50000; i++){
        for (short h = Short.MIN_VALUE; h < Short.MAX_VALUE; h++) {
            ret += FP16.ceil(h);
        }
    }
    after = System.currentTimeMillis();
    System.out.println("Time of FP16.ceil (ms): " + (after - before));
    System.out.println(ret);
    return ret;
}

Test: 580-fp16
Test: art/test/testrunner/run_build_test_target.py -j80 art-test-javac
Change-Id: I5474c1d0d7c08ec77a6f82c4fb67f555253bfa67
