You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
At the moment, in the C bindings, the points are represented as a struct with 3 fields. It creates 3 indirections when calling the C code. When performing many operations on the same point, the same memory page, containing the 3 coordinates, can stay in the CPU cache, which may give a possible non-negligeable performance improvement.
The text was updated successfully, but these errors were encountered:
dannywillems
changed the title
[optim
[optim] Use a contiguous array for coordinates
Jul 14, 2024
dannywillems
changed the title
[optim] Use a contiguous array for coordinates
[optim - C binding] Use a contiguous array for coordinates
Jul 14, 2024
dannywillems
changed the title
[optim - C binding] Use a contiguous array for coordinates
[optim - C binding] Use a contiguous array/flat representation for coordinates
Jul 14, 2024
This is about the elliptic curves (mirage-crypto-ec). This is a good idea, would you mind to submit a PR and have some performance numbers before&after (see bench/speed.exe)?
This is about the elliptic curves (mirage-crypto-ec). This is a good idea, would you mind to submit a PR and have some performance numbers before&after (see bench/speed.exe)?
I can not commit to anything for the next two weeks. Maybe beginning of August I will have some spare time.
More generally, I was curious about checking more the C related code to see if a flat representation in a single custom block can be used. A flat structure of a multiple of 64 bits can be used in general.
At the moment, in the C bindings, the points are represented as a struct with 3 fields. It creates 3 indirections when calling the C code. When performing many operations on the same point, the same memory page, containing the 3 coordinates, can stay in the CPU cache, which may give a possible non-negligeable performance improvement.
The text was updated successfully, but these errors were encountered: