{"status": "BENES01_BENCHMARK_VERIFIED", "protocol": "CHIA-BENES-PERM-v1.0 (BPC)", "sourceRepo": "https://github.com/Chia-Network/benes-perm", "authors": "Bram Cohen, Dan Boneh & Rohan Ridenour (Chia Network PoS2 Research)", "liveVerification": {"testedPermutationSize": 128, "magicHeader": "BENES01\\0", "payloadBytes": 91, "totalBlobBytes": 113, "bidirectionalUint32Bytes": 1024, "savingsVsBidirectionalUint32Pct": 91.1, "compressLatencyMs": 0.375, "fullRoundTripLookupMs": 15.354, "avgPerLookupMicroseconds": 59.977, "bijectiveRoundTripPassed": true, "manyToManyForwardMatchPassed": true, "manyToManyInverseMatchPassed": true}, "millionCapsuleScaleMetrics": {"entries": 1048576, "benesPayloadBytes": 2449408, "benesPayloadMiB": 2.336, "singleUint32Bytes": 4194304, "bidirectionalUint32Bytes": 8388608, "packed20BitBytes": 2621440, "shannonMinimumBytes": 2432345, "overheadAboveShannonLimitPct": 0.7, "savingsVsSingleUint32Pct": 41.6, "savingsVsBidirectionalUint32Pct": 70.8}, "hardwareAccelerationMatrix": [{"backend": "Apple Silicon Metal 4 GPU (M5 Max 40-Core)", "entries": 1048575, "wallSeconds": 0.012152, "deviceSeconds": 0.005213, "millionEntriesPerSec": 86.29, "speedupVsSingleCore": "19.9x", "canonicalByteIdentical": true}, {"backend": "Portable CPU Multithreaded (18 Threads)", "entries": 1048575, "wallSeconds": 0.067202, "deviceSeconds": null, "millionEntriesPerSec": 15.6, "speedupVsSingleCore": "3.83x", "canonicalByteIdentical": true}, {"backend": "x86-64 AVX-512 Vectorized Middle Coding", "entries": 1048575, "wallSeconds": 0.0485, "deviceSeconds": null, "millionEntriesPerSec": 21.62, "speedupVsSingleCore": "5.31x", "canonicalByteIdentical": true}, {"backend": "Portable CPU Single-Thread Reference", "entries": 1048575, "wallSeconds": 0.2575, "deviceSeconds": null, "millionEntriesPerSec": 4.07, "speedupVsSingleCore": "1.00x", "canonicalByteIdentical": true}], "sizeComparisonTable": [{"size": 31, "networkWidth": 32, "middleGroupLog2": 5, "switchBits": 0, "middleBits": 113, "inputSwitchBytes": 0, "outputSwitchBytes": 0, "middleRankBytes": 15, "payloadBytes": 15, "uint32SingleBytes": 124, "uint32BidirectionalBytes": 248, "packedBytes": 20, "minimumTheoreticalBytes": 15, "savingsVsSingleUint32Pct": 87.9, "savingsVsBidirectionalUint32Pct": 94}, {"size": 32, "networkWidth": 32, "middleGroupLog2": 5, "switchBits": 0, "middleBits": 118, "inputSwitchBytes": 0, "outputSwitchBytes": 0, "middleRankBytes": 15, "payloadBytes": 15, "uint32SingleBytes": 128, "uint32BidirectionalBytes": 256, "packedBytes": 20, "minimumTheoreticalBytes": 15, "savingsVsSingleUint32Pct": 88.3, "savingsVsBidirectionalUint32Pct": 94.1}, {"size": 33, "networkWidth": 64, "middleGroupLog2": 5, "switchBits": 16, "middleBits": 94, "inputSwitchBytes": 2, "outputSwitchBytes": 2, "middleRankBytes": 12, "payloadBytes": 16, "uint32SingleBytes": 132, "uint32BidirectionalBytes": 264, "packedBytes": 25, "minimumTheoreticalBytes": 16, "savingsVsSingleUint32Pct": 87.9, "savingsVsBidirectionalUint32Pct": 93.9}, {"size": 63, "networkWidth": 64, "middleGroupLog2": 5, "switchBits": 31, "middleBits": 231, "inputSwitchBytes": 4, "outputSwitchBytes": 4, "middleRankBytes": 29, "payloadBytes": 37, "uint32SingleBytes": 252, "uint32BidirectionalBytes": 504, "packedBytes": 48, "minimumTheoreticalBytes": 37, "savingsVsSingleUint32Pct": 85.3, "savingsVsBidirectionalUint32Pct": 92.7}, {"size": 64, "networkWidth": 64, "middleGroupLog2": 5, "switchBits": 32, "middleBits": 236, "inputSwitchBytes": 4, "outputSwitchBytes": 4, "middleRankBytes": 30, "payloadBytes": 38, "uint32SingleBytes": 256, "uint32BidirectionalBytes": 512, "packedBytes": 48, "minimumTheoreticalBytes": 37, "savingsVsSingleUint32Pct": 85.2, "savingsVsBidirectionalUint32Pct": 92.6}, {"size": 65, "networkWidth": 128, "middleGroupLog2": 5, "switchBits": 48, "middleBits": 212, "inputSwitchBytes": 6, "outputSwitchBytes": 6, "middleRankBytes": 27, "payloadBytes": 39, "uint32SingleBytes": 260, "uint32BidirectionalBytes": 520, "packedBytes": 57, "minimumTheoreticalBytes": 38, "savingsVsSingleUint32Pct": 85, "savingsVsBidirectionalUint32Pct": 92.5}, {"size": 96, "networkWidth": 128, "middleGroupLog2": 5, "switchBits": 96, "middleBits": 320, "inputSwitchBytes": 12, "outputSwitchBytes": 12, "middleRankBytes": 40, "payloadBytes": 64, "uint32SingleBytes": 384, "uint32BidirectionalBytes": 768, "packedBytes": 84, "minimumTheoreticalBytes": 63, "savingsVsSingleUint32Pct": 83.3, "savingsVsBidirectionalUint32Pct": 91.7}, {"size": 127, "networkWidth": 128, "middleGroupLog2": 5, "switchBits": 126, "middleBits": 467, "inputSwitchBytes": 16, "outputSwitchBytes": 16, "middleRankBytes": 59, "payloadBytes": 91, "uint32SingleBytes": 508, "uint32BidirectionalBytes": 1016, "packedBytes": 112, "minimumTheoreticalBytes": 89, "savingsVsSingleUint32Pct": 82.1, "savingsVsBidirectionalUint32Pct": 91}, {"size": 128, "networkWidth": 128, "middleGroupLog2": 5, "switchBits": 128, "middleBits": 472, "inputSwitchBytes": 16, "outputSwitchBytes": 16, "middleRankBytes": 59, "payloadBytes": 91, "uint32SingleBytes": 512, "uint32BidirectionalBytes": 1024, "packedBytes": 112, "minimumTheoreticalBytes": 90, "savingsVsSingleUint32Pct": 82.2, "savingsVsBidirectionalUint32Pct": 91.1}, {"size": 129, "networkWidth": 256, "middleGroupLog2": 5, "switchBits": 144, "middleBits": 448, "inputSwitchBytes": 18, "outputSwitchBytes": 18, "middleRankBytes": 56, "payloadBytes": 92, "uint32SingleBytes": 516, "uint32BidirectionalBytes": 1032, "packedBytes": 129, "minimumTheoreticalBytes": 91, "savingsVsSingleUint32Pct": 82.2, "savingsVsBidirectionalUint32Pct": 91.1}, {"size": 1048575, "networkWidth": 1048576, "middleGroupLog2": 5, "switchBits": 7864305, "middleBits": 3866619, "inputSwitchBytes": 983039, "outputSwitchBytes": 983039, "middleRankBytes": 483328, "payloadBytes": 2449406, "uint32SingleBytes": 4194300, "uint32BidirectionalBytes": 8388600, "packedBytes": 2621438, "minimumTheoreticalBytes": 2432342, "savingsVsSingleUint32Pct": 41.6, "savingsVsBidirectionalUint32Pct": 70.8}, {"size": 1048576, "networkWidth": 1048576, "middleGroupLog2": 5, "switchBits": 7864320, "middleBits": 3866624, "inputSwitchBytes": 983040, "outputSwitchBytes": 983040, "middleRankBytes": 483328, "payloadBytes": 2449408, "uint32SingleBytes": 4194304, "uint32BidirectionalBytes": 8388608, "packedBytes": 2621440, "minimumTheoreticalBytes": 2432345, "savingsVsSingleUint32Pct": 41.6, "savingsVsBidirectionalUint32Pct": 70.8}], "fanoutProtocol": "DBRAIN-BENES01-FANOUT-v1.0"}