Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8154974

AVX-512 equipped inflate, has_negatives & compress intrinsics

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P3 P3
    • 9
    • 9
    • hotspot
    • None
    • b120
    • x86

      Inflate, Compress, hasNegatives AVX512 enabled intrinsics. Using mask registers for a tail of the loops. 32 element warp size for inflate, compress. 64 warp for hasNegatives (regardless of bitnes of the architecture). Tight loop followed by a tail (and sometimes partial candidates snippet).
      Code Contributed by: Tomasz Wojtowicz (tomasz.wojtowicz@intel.com)
      ---------
      Testing:
      ---------
      Internally developed ubenchmarks for performance & similar functional using Reflections API for those 3 intrinsics on an up to 4K chunks of pseudo random initialized data to verify correctness.
      Has_negatives had a negative sentinel as a last element in an array.
      Also tailored examples for compress which would test all of the possible entry scenarios (tail present/not present, non-compressable element found in head OR tail - to make sure that there is a coverage for all of the basic blocks inside intrinsic)

      Everything run at least 3 times for -XX:UseAVX=1 then 2 and 3, depending on a scenario for establishing performance baseline AND/OR correctness when "older"(AVX<=2) had been modified.

            mcberg Michael Berg (Inactive)
            vdeshpande Vivek Deshpande (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved:

                Estimated:
                Original Estimate - 6 weeks
                6w
                Remaining:
                Remaining Estimate - 2 days
                2d
                Logged:
                Time Spent - Not Specified Time Not Required
                Not Specified