Performance Engineering: Being Friendly to Your HardwarePerformance Engineering A gentle introduction to hardware for software engineers 2Where does C++ run? 3On an abstract C++ machine 4On an abstract C++ machine? 5C++ runs on a computer platform 6Computer 6Computer platform 7 Processor Memory IO InterconnectComputer platform Processor + Interconnect + Memory 8Computer platform Processor + Interconnect + Memory 9Computer platform Processor + Interconnect Interconnect + Memory 10Computer platform Processor + Interconnect + Memory 11Computer platform Processor + Interconnect + Memory 12Computer platform Processor + Interconnect + Memory 13Computer0 码力 | 111 页 | 2.23 MB | 6 月前3
CROSS PLATFORM PITFALLS AND HOW TO AVOID THEMCROSS-PLATFORM PITFALLS AND HOW TO AVOID THEM Erika Sweet (she/her) Microsoft C++ TeamWelcome to CppCon 2020! Visit our table at the Expo Hall https://aka.ms/cppcon/expo • Meet the Microsoft C++ Abdicating responsibility to CMake Reimplementing functionality that CMake has built-in to abstract platform and compiler specificsUse built-in CMake command line tools…. execute_process(COMMAND ${CMAKE_COMMAND} rget PUBLIC cxx_std_11) …instead of manually setting flags via CMAKE_CXX_FLAGSKeep your paths platform independent…. target_include_directories(myTarget PUBLIC $0 码力 | 67 页 | 360.44 KB | 6 月前3
Cross-Platform Floating-Point Determinism Out of the Boxof) 2 3Why FP Determinism is Important?_ CppCon 2024 sixit:: 5 ✅ Same Executable Cross Platform Different Contexts ❌ ❌ 1 (Sort of) 2 3 General Sanity, Testability Distributed Simulations using the identically compiled files and run on systems that adhere to the IEEE standards. Cross platform synchronized network simulations or replays will not possible [sic].” - Most upvoted answer on0 码力 | 31 页 | 3.88 MB | 6 月前3
High-Performance Cross-Platform Architecture: C++20 Innovationscareer in video games and embedded software • Started using C++ in 1995 • First cross-platform project in 1994Cross-Platform Architecture Goals • Take advantage of all platforms • Focus on the compiler • Minimize classes, an illustrative example from a larger project • Project build issues • Inclusion of platform-specific header files • Concept hierarchies • Class and Function DesignOCP: The Open–Closed Principle Adding new revisions to a feature has no effect on previously-implemented revisions.What is a Platform? • A specific set of features • A feature is an abstract unit of functionality requiring implementations0 码力 | 75 页 | 581.83 KB | 6 月前3
Cetting Started with C++tools… Without using your credit card… In less than 15 minutes?01 Obtaining tools for your platform 02 03 04 Code reuse through libraries Building correct, secure, and safe systems Planning Planning for the future Agenda Resources for learning modern C++ 0501 Obtaining tools for your platform 02 03 04 Code reuse through libraries Building correct, secure, and safe systems Planning Resources for learning modern C++ 05Tools for your platform Build & project systems Editors & IDEs Compiler toolchainsTools for your platform Build & project systems Editors & IDEs Compiler0 码力 | 95 页 | 4.71 MB | 6 月前3
Building Safe and Reliable Surgical Robotics with C++prescriptiveness ❖ No strong language (only recommendations) ❖ Usability and human factors engineering aspects ❖ Requirements and system design errors ❖ Non-linear/indirect interactions between components Medical Device Use Case & C++ 21Our use case: A Class-C Medical Device Robotically Assisted Surgical Platform 22 Millions of Lines of C++ CodeReminder to a simple, but often overlooked, question! Why C++ pre-commit, and local dev before CI: Limited CD in Medical Devices Local Dev Pre-Commit Hooks Multi-platform Build Multi-compiler Build Test Build ASan TSan LSan UBSan MSan RTSan Quality Gate Code0 码力 | 71 页 | 4.02 MB | 6 月前3
cppcon 2021 safety guidelines for C parallel and concurrencyGroup (MUC++) Member of WG21 (ISO C++) and MISRA C++ Working on the Runtime framework for the Arene platform at Woven Planet Ilya Burylov Principle Engineer at Intel An architect of C++ software solutions Programming Research Ltd, 2013 • Some parallelism • Software Engineering Institute CERT C/C++ Coding Standard, Software Engineering Institute Division at Carnegie Mellon University, 2016 • Most recent0 码力 | 52 页 | 3.14 MB | 6 月前3
Vectorizing a CFD Code With std::simd Supplemented by Transparent Loading and Storing▪ exploiting current and future HPC hardware architectures ▪ making use of modern software engineering and code design Background: Cooperation CODA (CFD for ONERA, DLR, Airbus) *CODA is co-owned indexing ▪ Demand-driven implementation ▪ Collection of the generalizable part of our vectorization Platform for experiments and discussions of future developments ▪ Single header include provided 17 Olaf operator.(); }; SIMD_ACCESS(data, i, .x) data[i].template dot<&Point::x>() data[i][nX]Software Engineering Results About 200 lines of code changed ▪ Expressions, control and data flow remain recognizable0 码力 | 58 页 | 2.68 MB | 6 月前3
Exceptions Under the Spotlightoverlap) C++ Usage In Work Environment 52.1% 14.6% 14.5% 11.6% 7.4% 7% 0.5% 0 20 40 60 Engineering (Communication, Network, RT, Embedded, etc.) Hardware / IoT AI (Artificial Intelligence) / ML alternative error handling mechanisms. Exceptions are a language-level concept. Exceptions are platform-independent. • C++ Exceptions followABI rules. 18PART II: EXCEPTIONS OVERHEAD 19• Main difference Measurement gcc X86-64bit gcc ARM-32bit • A clear observation that exceptions are slower on both platform. • Exceptions perform worse for size and speed on ARM (single core). Runtime (ms) Size (B) Throw30 码力 | 53 页 | 2.82 MB | 6 月前3
Back to Basics: Debugging Techniquesincorrect description of symptoms • Lack of knowledge about the product – version / configuration / platform / etc. • Problem reports may not indicate actual problems • Unexpected behavior is not always The Debugging Process – In Theory – And Practice 16 • There's an analogy here with software engineering processes... Simple cases - waterfall Complex cases – iterative and incrementalCppCon 2021 – Back • Characterizing • Determining the context in which symptoms were observed • Version number, platform, resources allocated, external interfaces, configuration data, etc. • Information that allows you0 码力 | 44 页 | 470.68 KB | 6 月前3
共 180 条
- 1
- 2
- 3
- 4
- 5
- 6
- 18
相关搜索词
PerformanceEngineeringBeingFriendlytoYourHardwareCROSSPLATFORMPITFALLSANDHOWTOAVOIDTHEMCrossPlatformFloatingPointDeterminismOutoftheBoxHighArchitectureC++20InnovationsCettingStartedwithBuildingSafeandReliableSurgicalRoboticscppcon2021safetyguidelinesforparallelconcurrencyVectorizingCFDCodeWithstdsimdSupplementedbyTransparentLoadingStoringExceptionsUnderSpotlightBackBasicsDebuggingTechniques













