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 | 6 月前3
simd: How to Express Inherent Parallelism Efficiently Via Data-Parallel Typesr = pixel.g = pixel.b = gray; 5 } 6 } or 1 void to_gray(Image& img) { 2 std::for_each (std::execution::unseq, img.begin(), img.end(), [](Pixel& pixel) { 3 const auto gray = (pixel.r * 11 + pixel.g r = pixel.g = pixel.b = gray; 5 } 6 } or 1 void to_gray(Image& img) { 2 std::for_each (std::execution::unseq, img.begin(), img.end(), [](Pixel& pixel) { 3 const auto gray = (pixel.r * 11 + pixel.g over an image, producing vectorized access to pixels 2 Operations on vectorized pixels • Ideally, the first part is generalized to: Iteration over a range, providing vectorized access to its elements.0 码力 | 160 页 | 8.82 MB | 6 月前3
Performance Engineering: Being Friendly to Your HardwareROM Cache L1I • ABI registers implement a SW contract • They do not correspond to the actual execution • Conversion of control flow to a variant of data flow • Really complex • Some operations end of operations are equalExecution 54 Branching Fetch Decode Queue Allocation Scheduling Execution ROM Cache L1I LSQ • Multiple specialized functional units • Performs the actual (eventually) • Latency vs throughputRetirement 55 Branching Fetch Decode Queue Allocation Scheduling Execution ROM Cache L1I L1D LSQ Retirement • All operations until now are speculative • Except some0 码力 | 111 页 | 2.23 MB | 6 月前3
1.3 Go practices in TiDB 姚维platform ○ Failpoint injection ○ Goroutine-leak detection ● Optimization ○ Chunk vs interface{} ○ Vectorized execution TiDB Overview TiDB TiDB TiDB Application via MySQL Protocol TiKV TiKV TiFlash TiKV TiKV columns[colIdx] return *(*uint64)(unsafe.Pointer(&col.data[r.idx*8])) } Chunk ● Less CPU cache miss ● Vectorized Execute expressions: Chunk func VectorizedExecute(ctx Context, exprs []Expression, iterator End(); row = iterator.Next() { err = executeToInt(ctx, expr, fieldType, row, output, colID) } …. } ● Vectorized Execute expressions: Lessons learned ● Make things right, then make things faster ● Premature0 码力 | 32 页 | 1.76 MB | 6 月前3
Julia 1.11.6 Release NotesUpdating operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6.5 Vectorized "dot" operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.6 Numeric Comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 20.11 Array and Vectorized Operators and Functions . . . . . . . . . . . . . . . . . . . . . 288 20.12 Broadcasting . . MutableArithmetics for more control over allocation for mutable arithmetic types463 35.16 More dots: Fuse vectorized operations . . . . . . . . . . . . . . . . . . . . . . . . . 463 35.17 Fewer dots: Unfuse certain0 码力 | 2007 页 | 6.73 MB | 3 月前3
Julia 1.11.4Updating operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6.5 Vectorized "dot" operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.6 Numeric Comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 20.11 Array and Vectorized Operators and Functions . . . . . . . . . . . . . . . . . . . . . 288 20.12 Broadcasting . . MutableArithmetics for more control over allocation for mutable arithmetic types463 35.16 More dots: Fuse vectorized operations . . . . . . . . . . . . . . . . . . . . . . . . . 463 35.17 Fewer dots: Unfuse certain0 码力 | 2007 页 | 6.73 MB | 3 月前3
Julia 1.11.5 DocumentationUpdating operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6.5 Vectorized "dot" operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.6 Numeric Comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 20.11 Array and Vectorized Operators and Functions . . . . . . . . . . . . . . . . . . . . . 288 20.12 Broadcasting . . MutableArithmetics for more control over allocation for mutable arithmetic types463 35.16 More dots: Fuse vectorized operations . . . . . . . . . . . . . . . . . . . . . . . . . 463 35.17 Fewer dots: Unfuse certain0 码力 | 2007 页 | 6.73 MB | 3 月前3
julia 1.10.10Updating operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5.5 Vectorized "dot" operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 5.6 Numeric Comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 19.11 Array and Vectorized Operators and Functions . . . . . . . . . . . . . . . . . . . . . 271 19.12 Broadcasting . . outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 34.15 More dots: Fuse vectorized operations . . . . . . . . . . . . . . . . . . . . . . . . . 434 34.16 Consider using views for0 码力 | 1692 页 | 6.34 MB | 3 月前3
Julia 1.10.9Updating operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5.5 Vectorized "dot" operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 5.6 Numeric Comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 19.11 Array and Vectorized Operators and Functions . . . . . . . . . . . . . . . . . . . . . 271 19.12 Broadcasting . . outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 34.15 More dots: Fuse vectorized operations . . . . . . . . . . . . . . . . . . . . . . . . . 434 34.16 Consider using views for0 码力 | 1692 页 | 6.34 MB | 3 月前3
julia 1.13.0 DEVUpdating operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.6 Vectorized "dot" operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.7 Numeric Comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 20.11 Array and Vectorized Operators and Functions . . . . . . . . . . . . . . . . . . . . . 291 20.12 Broadcasting . . 4 Memory management and arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . 474 35.5 Execution latency, package loading and package precompiling time . . . . . . . . . 481 35.6 Miscellaneous0 码力 | 2058 页 | 7.45 MB | 3 月前3
共 222 条
- 1
- 2
- 3
- 4
- 5
- 6
- 23













