[openssl/openssl] 96b16b: ppc64le: Optimized MLDSA NTT, supports p8 and abov...

"'Danny Tsen' via openssl-commits" <[email protected]>
Newsgroups gmane.comp.encryption.openssl.cvs
Message-ID <openssl/openssl/push/refs/heads/master/[email protected]>
  Branch: refs/heads/master
  Home:   https://github.com/openssl/openssl
  Commit: 96b16b9a611fdd4f75b86acb837a09eb7a17fc90
      https://github.com/openssl/openssl/commit/96b16b9a611fdd4f75b86acb837a09eb7a17fc90
  Author: Danny Tsen <[email protected]>
  Date:   2026-08-27 (Thu, 27 Aug 2026)

  Changed paths:
    A crypto/ml_dsa/asm/mldsa_intt_ppc64le.S
    A crypto/ml_dsa/asm/mldsa_ntt_ppc64le.S
    A crypto/ml_dsa/asm/mldsa_ppc_macros_asm.inc
    M crypto/ml_dsa/build.info
    M crypto/ml_dsa/ml_dsa_ntt.c
    M crypto/ml_dsa/ml_dsa_poly.h

  Log Message:
  -----------
  ppc64le: Optimized MLDSA NTT, supports p8 and above architectures.

1. rebased.
2. fixed tab.

Optimized MLDSA NTT implementation for ppc64le (p8+).

Supporting files include,
ppc64/mldsa_ntt_ppc_4x.S: supports ossl_ml_dsa_poly_ntt.
ppc64/mldsa_intt_ppc_4x.S: supports ossl_ml_dsa_poly_ntt_inverse.
ppc64/mldsa_poly_ntt_mul.S: supports ossl_poly_ntt_mult.
ppc64/mldsa_poly_add.S: supports poly_add and poly_sub.

Modified build.info to support ppc64le assembly implementation.
Added new definitions of MLDSA_NTT_ASM and MLDSA_POLY_ADD_ASM for
NTT, inverse NTT and poly_add and poly_sub for optimized assembly
implementation.

This is the initial archtecture specific implementation so can be mdified
to adapt to a new build structures.

Baseline speed test:

                       keygen     signs    verify keygens/s    sign/s  verify/s
          ML-DSA-44 0.000141s 0.000932s 0.000171s    7115.2    1073.3    5860.9
          ML-DSA-65 0.000238s 0.001471s 0.000255s    4207.2     679.6    3920.2
          ML-DSA-87 0.000340s 0.001719s 0.000387s    2939.4     581.8    2584.8

Optimized:
          ML-DSA-44 0.000072s 0.000253s 0.000060s   13866.8    3954.7   16735.7
          ML-DSA-65 0.000138s 0.000400s 0.000095s    7253.2    2500.2   10532.4
          ML-DSA-87 0.000187s 0.000485s 0.000159s    5338.5    2061.4    6269.8

The optimized code runs around 3.6 times faster than the original C implementation.

Signed-off-by: Danny Tsen <[email protected]>
Reviewed-by: Shane Lontis <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
Merge-date: Thu Aug 27 16:26:36 2026
Merged-from: https://github.com/openssl/openssl/pull/29611



To unsubscribe from these emails, change your notification settings at https://github.com/openssl/openssl/settings/notifications

-- 
You received this message because you are subscribed to the Google Groups "openssl-commits" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To view this discussion visit https://groups.google.com/a/openssl.org/d/msgid/openssl-commits/openssl/openssl/push/refs/heads/master/d2307a-96b16b%40github.com.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.