Remote Execution Caching Compiler (RECC)
Remote Execution Caching Compiler (RECC) CppCon 2024 September 19, 2024 Shivam Bairoliya Software Engineer© 2024 Bloomberg Finance L.P. All rights reserved. What is RECC? ● Remote Execution Caching source build tool that wraps compiler commands and optionally forwards them to a remote build execution service ○ Encompasses the capabilities of both ccache and distcc ○ Supports remote linking and CC) ○ Supports multiple operating systems (Linux, macOS, Solaris) ● Compatible with any remote execution API server supported by Bazel ○ Single Host Server/Proxy: BuildBox-CASD ○ Distributed Server:0 码力 | 6 页 | 2.03 MB | 5 月前3Distributed Ranges: A Model for Building Distributed Data Structures, Algorithms, and Views
manually split up data amongst GPUs / nodes - High-level mechanisms for data distribution / execution necessary. CPU NIC GPU GPU GPU GPU Xe LinkMulti-GPU Systems - NUMA regions: - 4+ GPUs distributed algorithms - Achieve high performance for both multi-GPU, NUMA, and multi-node execution float dot_product(vector& x, vector & y) { auto z = views::zip(x Operate on and modify data using namespace std; using namespace std::ranges; using namespace std::execution; template auto dot_product(R&& x, R&& y) { using T = range_value_t ; auto z = 0 码力 | 127 页 | 2.06 MB | 5 月前3C++ Memory Model: from C++11 to C++23
Memory Model C++11 – C++23About Me: alex.dathskovsky@speedata.io www.linkedin.com/in/alexdathskovsky https://www.cppnext.comAlex Dathskovsky | alex.dathskovsky@speedata.io | www.linkedin.com/in/a ExecutionAlex Dathskovsky | alex.dathskovsky@speedata.io | www.linkedin.com/in/alexdathskovsky INO Execution • instruction fetch • if operands available execute it if not fetch them • The instruction is ExecutionAlex Dathskovsky | alex.dathskovsky@speedata.io | www.linkedin.com/in/alexdathskovsky OOO Execution Source:: https://www.semanticscholar.org/paper/RISC-V-Reward:-Building-Out-of-Order-Processo0 码力 | 112 页 | 5.17 MB | 5 月前3Working with Asynchrony Generically: A Tour of C++ Executors
including some standard ones: an event loop, portable access to the system execution context, nursery for spawned work4 P2300: STD::EXECUTION Proposes: • A set of concepts that represent: • A handle to a compute Example 1: Launching concurrent work6 EXAMPLE: LAUNCHING CONCURRENT WORK namespace ex = std::execution; int compute_intensive(int); int main() { unifex::static_thread_pool pool{8}; ex::scheduler concurrently on a custom execution context libunifex: https://github.com/facebookexperimental/libunifex7 EXAMPLE: LAUNCHING CONCURRENT WORK namespace ex = std::execution; int compute_intensive(int);0 码力 | 121 页 | 7.73 MB | 5 月前3Just-in-Time Compilation - J F Bastien - CppCon 2020
perspective: > I understand C++, and I kinda get assembly because of compiler explorer. Our typical model of AoT is “what C and C++ do”, and I want to expand the understanding for what other computation models JiT compilation includes any translation performed dynamically, after a program has started execution. We examine the motivation behind JiT compilation and constraints imposed on JiT compilation systems JiT compilation includes any translation performed dynamically, after a program has started execution. We examine the motivation behind JiT compilation and constraints imposed on JiT compilation systems0 码力 | 111 页 | 3.98 MB | 5 月前3Back to Basics: Concurrency
somewhat reflects how we write software (1/3) 11 ● Typically we have one main, sequential thread of execution ● One CPU core executes code sequentially ○ i.e. One instruction after the other. Instruction somewhat reflects how we write software (2/3) 12 ● Typically we have one main, sequential thread of execution ● One CPU core executes code sequentially ○ i.e. One instruction after the other. ○ We can abstract Foo() Bar() Baz() Execute main execution pathThis somewhat reflects how we write software (3/3) 13 ● Typically we have one main, sequential thread of execution ● One CPU core executes code serially0 码力 | 141 页 | 6.02 MB | 5 月前3Conan 1.19 Documentation
from, as well as upload packages to, different servers (“remotes”), similar to the “git” push-pull model to/from git remotes. On a high level, the servers are just package storage. They do not build nor can come from the command line, profiles or from the values cached in the latest conan install execution. 2. Conan retrieves the MyLib/1.0@user/channel recipe, reads the settings attribute, and assigns 5 and < 5.0, you could do the following: from conans import ConanFile, CMake, tools from conans.model.version import Version class PkgConan(ConanFile): name = "Pkg" version = "1.0" settings = "compiler"0 码力 | 609 页 | 4.88 MB | 1 年前3Conan 1.20 Documentation
from, as well as upload packages to, different servers (“remotes”), similar to the “git” push-pull model to/from git remotes. On a high level, the servers are just package storage. They do not build nor can come from the command line, profiles or from the values cached in the latest conan install execution. 2. Conan retrieves the MyLib/1.0@user/channel recipe, reads the settings attribute, and assigns 5 and < 5.0, you could do the following: from conans import ConanFile, CMake, tools from conans.model.version import Version class PkgConan(ConanFile): name = "Pkg" version = "1.0" settings = "compiler"0 码力 | 611 页 | 4.89 MB | 1 年前3Conan 1.24 Documentation
from, as well as upload packages to, different servers (“remotes”), similar to the “git” push-pull model to/from git remotes. On a high level, the servers are just a package storage. They do not build nor apple-clang, intel, with different configurations of versions, runtimes, C++ standard library, etc. This model is also extensible to any custom configuration. 1.5 Stable From Conan 1.0, there is a commitment can come from the command line, profiles or from the values cached in the latest conan install execution. 2. Conan retrieves the mylib/1.0@user/channel recipe, reads the settings attribute, and assigns0 码力 | 647 页 | 5.31 MB | 1 年前3Conan 1.25 Documentation
from, as well as upload packages to, different servers (“remotes”), similar to the “git” push-pull model to/from git remotes. On a high level, the servers are just a package storage. They do not build nor apple-clang, intel, with different configurations of versions, runtimes, C++ standard library, etc. This model is also extensible to any custom configuration. 1.5 Stable From Conan 1.0, there is a commitment can come from the command line, profiles or from the values cached in the latest conan install execution. 2. Conan retrieves the mylib/1.0@user/channel recipe, reads the settings attribute, and assigns0 码力 | 655 页 | 5.45 MB | 1 年前3
共 227 条
- 1
- 2
- 3
- 4
- 5
- 6
- 23