Cross-Platform Floating-Point Determinism Out of the Boxis doable, in spite of setbacks Sherry Ignatchenko 🇦🇹 si@6it.devTask Definition. Why Determinism? 1 Talk Outline_ Pre-Existing Work. What Went Wrong? 2 CppCon 2024 sixit:: Our First Attempt the same inputs, in different contexts of the same executable ❌ ❌ 1 (Sort of) 2 3Why FP Determinism is Important?_ CppCon 2024 sixit:: 5 ✅ Same Executable Cross Platform Different Contexts Options 5 1212 Extensive Testing 6Sources of FP non-determinism_ CppCon 2024 sixit:: 13 CPU Compiler1 2 3Handling FP non-determinism_ CppCon 2024 sixit:: 14 CPU Compiler 1 2 0 码力 | 31 页 | 3.88 MB | 6 月前3
Building bridges: Leveraging C++ and ROS for simulators, sensor data and algorithmstrademarks of Apex.AI. Determinism What is missing? 11 1. For time determinism1 , the results of a calculation are guaranteed to be available before a given deadline. 2. For data determinism1, each time a calculation initial internal state. In this talk, our primary discussion will be towards achieving data determinism via: • Deterministic execution2 will always run computations in the same order. • Deterministic on “Determinism in robotics software”© 2023 Apex.AI, Inc. | All rights reserved. Apex.AI, Apex.OS, Apex.Grace, Apex.Ida, Apex.Alan, Apex.Ray are trademarks of Apex.AI. Why do we need determinism? What0 码力 | 38 页 | 2.17 MB | 6 月前3
A Long Journey of Changing std::sort Implementation at Scale__last_iter; 11 } 12 34BUGS 35DETERMINISM 36DETERMINISM 37DETERMINISM Assume you sort some data 37.1DETERMINISM Assume you sort some data Cache it 37.2DETERMINISM Assume you sort some data Cache Cache it Now ties are handled randomly 37.3DETERMINISM Assume you sort some data Cache it Now ties are handled randomly Lower hit rate 37.4DETERMINISM Use std::stable_sort 38Let's write a median function0 码力 | 182 页 | 7.65 MB | 6 月前3
The Absurdity of Error HandlingPractitioner Type safety Memory safety Easy to use correctly; hard to use incorrectly I want determinism — does the same thing happen in the same way every time? Language safety is nice, but …© 2023 information? 41© 2023 Codeplay Software Ltd. If you are a C++ Language Designer • Can we talk about determinism in C++? • But also … • C++ exceptions are a monolithic sledgehammer • There are no error management0 码力 | 43 页 | 1.39 MB | 6 月前3
cppcon 2021 safety guidelines for C parallel and concurrencycase Safety Critical API Evolution minimize API surface area , reduce ambiguity, UB, increase determinism New Generation Safety Critical APIs for Graphics, Compute and Display Industry Safety Critical API Evolution minimize API surface area , reduce ambiguity, UB, increase determinism New Generation Safety Critical APIs for Graphics, Compute and Display Industry0 码力 | 52 页 | 3.14 MB | 6 月前3
Hyperledger Fabric 1.2 Documentationarchitecture must be deterministic; otherwise, consensus might never be reached. To address the non-determinism issue, many platforms require that the smart contracts be written in a non-standard, or domain-specific This first phase also eliminates any non-determinism, as inconsistent results can be filtered out before ordering. Because we have eliminated non-determinism, Fabric is the first blockchain technology much more seriously, results might be different because the chaincode is non-deterministic. Non-determinism is the enemy of chaincodes and ledgers and if it occurs it indicates a serious problem with the0 码力 | 335 页 | 4.48 MB | 1 年前3
Hyperledger Fabric 1.2 Documentationarchitecture must be deterministic; otherwise, consensus might never be reached. To address the non-determinism issue, many platforms require that the smart contracts be written in a non-standard, or domain-specific This first phase also eliminates any non-determinism, as inconsistent results can be filtered out before ordering. Because we have eliminated non-determinism, Fabric is the first blockchain technology much more seriously, results might be different because the chaincode is non-deterministic. Non-determinism is the enemy of chaincodes and ledgers and if it occurs it indicates a serious problem with the0 码力 | 497 页 | 6.59 MB | 1 年前3
Hyperledger Fabric 1.3 Documentationarchitecture must be deterministic; otherwise, consensus might never be reached. To address the non-determinism issue, many platforms require that the smart contracts be written in a non-standard, or domain-specific This first phase also eliminates any non-determinism, as inconsistent results can be filtered out before ordering. Because we have eliminated non-determinism, Fabric is the first blockchain technology much more seriously, results might be different because the chaincode is non-deterministic. Non-determinism is the enemy of chaincodes and ledgers and if it occurs it indicates a serious problem with the0 码力 | 528 页 | 6.85 MB | 1 年前3
Hyperledger Fabric 1.3 Documentationarchitecture must be deterministic; otherwise, consensus might never be reached. To address the non-determinism issue, many platforms require that the smart contracts be written in a non-standard, or domain-specific This first phase also eliminates any non-determinism, as inconsistent results can be filtered out before ordering. Because we have eliminated non-determinism, Fabric is the first blockchain technology much more seriously, results might be different because the chaincode is non-deterministic. Non-determinism is the enemy of chaincodes and ledgers and if it occurs it indicates a serious problem with the0 码力 | 367 页 | 4.95 MB | 1 年前3
Hyperledger Fabric 1.1 Documentationmuch more seriously, results might be different because the chaincode is non-deterministic. Non-determinism is the enemy of chaincodes and ledgers and if it occurs it indicates a serious problem with the for comparison before non-determinism can be detected. (Strictly speaking, even this is not enough, but we defer this discussion to the transaction topic, where non-determinism is discussed in detail.) important that all peers in the channel compute the same validation to avoid ledger divergence (non-determinism). So special care is needed if VSCC is modified or replaced. System Chaincode Plugins System0 码力 | 422 页 | 4.84 MB | 1 年前3
共 91 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10













