Public Key Accelerator performance on Bluefield 2

Hi there, I’m new to Bluefield 2, currently using the card’s hardware Public Key Accelerator to perform ECDSA signing for certain network packets. I’m using the libPKA(GitHub), and have read its architectural documentation.

However, I would like to seek for further clarification on these following topics regarding the Accelerator’s performance:

  1. How many physical accelerators are there on the Bluefield 2 card? My card’s model seems to be MBF2M516A-CEEO. For what I have tried so far seems that I can get at most 8 Rings from libPKA, each has an dedicated underlying accelerator; is that correct?
  2. How do the accelerators connect to the card’s CPUs? From the sources of user-mode libPKA it seems to be mem-mapping devices, but how does it actually interface (i.e. CPU ISA-extensions or PCIe devices)? Do they have CPU core-affinity?
  3. Would anyone provide some “raw” performance benchmarks for the accelerator? In particular I am looking at ECDSA signature generation for NIST P256 curve. While the architectural documentation of libPKA mentioned above does have some numbers, but it is not clear that if they are clock cycles or throughput; if they are cycles, what is the frequency? What I currently got from libPKA is around 120us per P256 signature per Hardware Ring, which does not seem to be fast. If available, I would like to know how fast can actual hardware can run - I may write a custom driver for that if necessary.

Thanks a lot.

I’m also working on offloading TLS encryption and decryption to the DPU,Can you share how you used libpka to complete encryption and decryption? Thanks a lot!

I used the libPKA directly with the APIs in pka.h of libPKA/lib. I used it for, and only for ECDSA operations.
You can find my adapter code here: lyftfc/ecdsa-libpka: ECDSA wrapper utility for Mellanox/pka library running on the Bluefield SmartNICs (
In particular, the content in ecdsa_utils.c is the actual implementation.

Some basic benchmark results are available here. Could be inaccurate, for reference only.

Thank you very much for your sharing sincerely! I’ll read it carefully.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.