Skip to content
/ darn Public

An investigation on new P9 darn instruction

Notifications You must be signed in to change notification settings

gromero/darn

Repository files navigation

== DARN ==

POWER9 User's Manual is cool and informs us that Single-Engine throughput for NX RNG is 80 Mbps, however it looks like a conservative number. For the records this is how I calculate the theoretical throughput for a given machine:

A 64-bit random number is generated every 1000 nest clock cycles (i.e. 2GHz).

If you know the nest freq. it's possible to calculate the theoretical maximum by dividing by 1000 and then multiplying by 64.

Get the RNG pace:

$ cat /sys/firmware/opal/msglog  | fgrep RNG
[   65.306388600,6] NX RNG[0] pace:2000
[   65.306468564,6] NX RNG[8] pace:2000

That is the pace rate at which the RNGs issue random numbers. There are two RNG macros so you will see a random number at 1/2 the pace. So pace of 2000 means you see a random number every 1000 nest clocks.

So pace=2000 and two RNGs, yields 1000 clock cycles for 1 RNG to generate a random number (64-bit). So Tcycle=1/2GHz = 0.0000000005 s. Since we need 1000 clock cycles, we need T=Tcycles*1000 = 0.0000005 s to generate a random number. Thus the theoretical throughput in Mbps is 64/T, which is 64/0.0000005 b/s, so 128000000 b/s or 128 Mbps.

About

An investigation on new P9 darn instruction

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published