Performance Engineering: Being Friendly to Your HardwareBeing Friendly to Your Hardware Performance 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 platform 7 Processor Memory IO InterconnectComputer platform Processor + Interconnect + Memory 8Computer platform Processor + Interconnect + Memory 9Computer platform Processor + Interconnect + Memory 10Computer platform Processor + Interconnect + Memory 11Computer platform Processor + Interconnect + Memory 12Computer platform Processor0 码力 | 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
Just-in-Time Compilation - J F Bastien - CppCon 2020is a solved one: translating programming languages into a form that is executable on a target platform. (read)Strictly speaking, JiT compilation systems are completely unnecessary. They are only a is a solved one: translating programming languages into a form that is executable on a target platform. (read)Strictly speaking, JiT compilation systems are completely unnecessary. They are only a is a solved one: translating programming languages into a form that is executable on a target platform. Time and space efficiency are where it’s at. How do these benefits break down?JiT Space-time0 码力 | 111 页 | 3.98 MB | 6 月前3
Heterogeneous Modern C++ with SYCL 2020the planning and preparation of a capable exascale ecosystem, including software, applications, hardware, advanced system engineering, and early testbed platforms, in support of the nation’s exascale Attribution 4.0 International License SYCL Single Source C++ Parallel Programming GPU FPGA DSP Custom Hardware GPU CPU CPU CPU Standard C++ Application Code C++ Libraries ML Frameworks C++ Template better performance on complex apps and libs than hand-coding AI/Tensor HW GPU FPGA DSP Custom Hardware GPU CPU CPU CPU AI/Tensor HW Other BackendsSYCL 2020 is here! Open Standard for Single Source0 码力 | 114 页 | 7.94 MB | 6 月前3
Just-In-Time Compilation: The Next Big ThingCODE (+) PATCHING WITH SOURCE CODE (+) PROGRAMMING WITH CONCEPTS: PLATFORM TEAM VS APPLICATION (+) PROGRAMMING WITH CONCEPTS: PLATFORM TEAM VS APPLICATION TEAM TEAM 6 . 23SUMMARY / FUTURE? SUMMARY / FUTURE RUN-TIME DATA/AVAILABLE (+) RUN-TIME PERFORMANCE (OPTIMIZATIONS BASED ON RUN-TIME DATA/AVAILABLE HARDWARE) HARDWARE) (-) BASED ON STRINGS (SECURITY CONCERNS) (-) BASED ON STRINGS (SECURITY CONCERNS) [[CLANG::JIT]] RUN-TIME DATA/AVAILABLE (+) RUN-TIME PERFORMANCE (OPTIMIZATIONS BASED ON RUN-TIME DATA/AVAILABLE HARDWARE) HARDWARE) (+) COMPILE-TIME PERFORMANCE (MEMOIZATION) (+) COMPILE-TIME PERFORMANCE (MEMOIZATION) (-)0 码力 | 222 页 | 5.45 MB | 6 月前3
C++ in the Developing World, Why it Mattersthe journey. • I am passionate about energy efficient computing and making the most out of older hardware, researching different platforms, tools and how to bridge different worlds and peoples together language for writing efficient code for older hardware which is easier to access in the developing world. • It will also look into the C++ language as a platform for education about software due to the large that everyone from a “Poor” country is “Poor” and everyone from a “Rich” Country is “Rich” Older Hardware • As TIME has progressed, Techology has improved to make SMALLER electrical components. • Meaning0 码力 | 8 页 | 177.52 KB | 6 月前3
Multi Producer, Multi Consumer, Lock Free, Atomic Queuekfree_mpmc_queueLockfree, MPMC Queue - Agenda 1. Trading Platform, Latency 2. Queues Environment 3. Queues Requirement 4. Atomic hardware and C++ Atomic 5. Queues Classification 6. Queue creation https://github.com/erez-strauss/lockfree_mpmc_queueLockfree, MPMC Queue - Background ● Trading platform - every message is tracked, at microseconds resolution ● Queues are essential data structure used atomic<> implementation supports atomicity by the CPU platform, than std::atomic::is_always_lockfree will be true. The queue requires hardware atomicity, if it is not available from the compile 0 码力 | 54 页 | 886.12 KB | 6 月前3
Back to Basics: The Abstract Machinestep-by-step execution of programs; they are abstract because they omit the many details of real (hardware) machines. Abstract machines provide an intermediate language stage for compilation. They bridge N G What is an Abstract Machine? “A processor design which is not intended to be implemented as hardware, but which is the notional executor of a particular intermediate language (abstract machine language) Machine? “The C++ abstract machine is a portable abstraction of your operating system, kernel and hardware. The abstract machine is the intermediary between your C++ program and the system that it is run0 码力 | 91 页 | 538.90 KB | 6 月前3
共 187 条
- 1
- 2
- 3
- 4
- 5
- 6
- 19
相关搜索词
PerformanceEngineeringBeingFriendlytoYourHardwareCROSSPLATFORMPITFALLSANDHOWTOAVOIDTHEMCrossPlatformFloatingPointDeterminismOutoftheBoxHighArchitectureC++20InnovationsJustinTimeCompilationBastienCppCon2020HeterogeneousModernwithSYCLInTheNextBigThingDevelopingWorldWhyitMattersMultiProducerConsumerLockFreeAtomicQueueBackBasicsAbstractMachine













