Just-in-Time Compilation - J F Bastien - CppCon 2020whole lot of space, and a whole lot of time. Clearly we want to do some tradeoffs.4 key benefits There are 4 key benefits to JiT systems, gained from AoT and interpreters. Let’s look at them…1. Compiled Cheshire Cat: Then it doesn’t much matter which way you go. Lewis Carroll, on JIT compilers. The key insight: figure out what you’re trying to do, and why it matters. There’s a more “grown up” way to they are not the ideal IR for compilation, but they can easily be used for that purpose. — 1997 A key to JiT design is IR design. This has deep effects on which optimizations are feasible. In particular0 码力 | 111 页 | 3.98 MB | 6 月前3
Linear Algebra Coming to Standard C++memory hierarchy (“cache-based”) Representative system Code optimization strategy Hand-optimize key loops in assembly Fuse loops to amortize latency & maximize instruction-level parallelism Maximize memory hierarchy (“cache-based”) Representative system Code optimization strategy Hand-optimize key loops in assembly Fuse loops to amortize latency & maximize instruction-level parallelism Maximize memory hierarchy (“cache-based”) Representative system Code optimization strategy Hand-optimize key loops in assembly Fuse loops to amortize latency & maximize instruction-level parallelism Maximize0 码力 | 46 页 | 2.95 MB | 6 月前3
Back to Basics TestingDecision Coverage Dependency Destructive Domain Dynamic End-to-end Endurance Equivalence Partitioning Error-Handling Exploratory Fault injection Formal verification Functional Fuzz Glass box0 码力 | 79 页 | 25.86 MB | 6 月前3
Back To Basics Algorithms{ return isSeniorCitizen( p ); } ); ranges::partition( table, []( Person const& p )Partitioning Algorithmsstable_partition( int main() { std::vectortable = /* ... */; Fun with 0 码力 | 99 页 | 19.12 MB | 6 月前3
generic graph librariesto support parallel graph algorithms, e.g., Concurrent containers, more control over parallel partitioning) 。Ranges + Concepts = synergy To Find Out More *。Gather Town directly after this talk 。https://github0 码力 | 76 页 | 6.59 MB | 6 月前3
Distributed Ranges: A Model for Building Distributed Data Structures, Algorithms, and Viewsearly research.Problem: writing parallel programs is hard - Multi-GPU, multi-CPU systems require partitioning data - Users must manually split up data amongst GPUs / nodes - High-level mechanisms for0 码力 | 127 页 | 2.06 MB | 6 月前3
Express Your Expectations: A Fast, Compliant JSON Pull Parser for Writing Robust Applicationsfalse Strings: "hello", 'world' Numbers: 0, -17, 3.1415, 1e10 Objects: Collection of properties (key-value pairs) Custom objects: {id: 42, name: "Jonathan Müller", speaker: true} Arrays (keys are indices): "id": object_begin, key("id") Jonathan Müller — @foonathan Express your expectations CppCon 2023-10-03 23Parser generates a sequence of events { "id": 42, object_begin, key("id"), number(42), Jonathan generates a sequence of events { "id": 42, "name": "Jonathan Müller", object_begin, key("id"), number(42), key("name"), string("Jonathan…"), Jonathan Müller — @foonathan Express your expectations CppCon0 码力 | 143 页 | 736.91 KB | 6 月前3
C++高性能并行编程与优化 - 课件 - 17 由浅入深学习 map 容器int> m; • 读取 map 中指定键值的元素有两种方法。 • val = m[“key”]; // 读取键值为 “ key” 的元素,如果不存在,那就创建 “ key” 元素 • val = m.at(“key”); // 读取键值为 “ key” 的元素,如果不存在,抛出异常 • 所以 [] 和 at() 唯一的区别,在于键值不存在这一特殊情况的处理方式。 • mapm; • val = m[“key”]; • 读取键值为 “ key” 的元素,如果不存在,那就创建一个 “ key” 元素并初始化为 0 。等价于: • it = m.find(“key”); • if (it == m.end()) { • it = m.insert({“key”, 0}); • } • val = it->second; it->second; 读取 map 元素 • map m; • val = m.at(“key”); • 读取键值为 “ key” 的元素,如果不存在,那就抛出异常,导致程序异常退出。等价于: • it = m.find(“key”); • if (it == m.end()) { • throw std::out_of_range(“ 找不到键值” ); • } • val 0 码力 | 90 页 | 8.76 MB | 1 年前3
Back to Basics: Classic 9STLof the number of elementsCppCon 2021 – Back to Basics: Classic STL Copyright © 2021 Bob Steagall Key Principles • Containers store collections of elements • Algorithms perform operations upon collections e2, …} Iterator AlgorithmCppCon 2021 – Back to Basics: Classic STL Copyright © 2021 Bob Steagall Key Principles • Containers store collections of elements • Algorithms perform operations upon collections Containers: Set templateKey, class Compare = less<Key>, class Allocator = allocator<Key>> class set; • Features • Supports logarithmic time element lookup • Elements of type Key are sorted according to 0 码力 | 75 页 | 603.36 KB | 6 月前3
GraphBLAS: Building a C++ Matrix API for Graph Algorithmsrelease and unlimited distribution. - Distinct set of keys - Each key associated with a value - Individual lookup/insertion by key - Iteration over unordered range of values Sparse Matrix - Similarities release and unlimited distribution. - Distinct set of keys - Each key associated with a value - Individual lookup/insertion by key - Iteration over unordered range of values Sparse Matrix - Similarities release and unlimited distribution. - Distinct set of keys - Each key associated with a value - Individual lookup/insertion by key - Iteration over unordered range of values Sparse Matrix - Similarities0 码力 | 172 页 | 7.40 MB | 6 月前3
共 179 条
- 1
- 2
- 3
- 4
- 5
- 6
- 18
相关搜索词
JustinTimeCompilationBastienCppCon2020LinearAlgebraComingtoStandardC++BackBasicsTestingToAlgorithmsgenericgraphlibrariesDistributedRangesModelforBuildingDataStructuresandViewsExpressYourExpectationsFastCompliantJSONPullParserWritingRobustApplications高性性能高性能并行编程优化课件17Classic9STLGraphBLASMatrixAPIGraph













