Cross-Platform Floating-Point Determinism Out of the Box
is 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 | 5 月前3Building bridges: Leveraging C++ and ROS for simulators, sensor data and algorithms
trademarks 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 | 5 月前3A 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 | 5 月前3The Absurdity of Error Handling
Practitioner 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 | 5 月前3cppcon 2021 safety guidelines for C parallel and concurrency
case 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 | 5 月前3Hyperledger Fabric 1.2 Documentation
architecture 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 年前3Hyperledger Fabric 1.2 Documentation
architecture 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 年前3Hyperledger Fabric 1.3 Documentation
architecture 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 年前3Hyperledger Fabric 1.3 Documentation
architecture 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 年前3Hyperledger Fabric 1.1 Documentation
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 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