Session Types in C++Client Server int int ADD DIV int double end Branching 31Session? • Can we describe a valid sequence of interactions? • Or formula ?int; ?int; &(ADD: !int, DIV: !double); end 32Session? • describe a valid sequence of interactions? • Or formula ?int; ?int; &(ADD: !int, DIV: !double); end !int; !int; ⊕(ADD: ?int, DIV: ?double); end dual formula 33Session types • Formal description of “message” operation is allowed!) • Then, again receive int • ... ?int; ?int; &(ADD: !int, DIV: !double); end Client Server int int ADD DIV int double end *Name “Behavioral types” is also used. See “Behavioral0 码力 | 89 页 | 1.55 MB | 6 月前3
C++高性能并行编程与优化 - 课件 - 09 CUDA C++ 流体仿真实战度的特点: div v = 0 • 上式对时间求导,即 d(div v)/dt = div dv/dt = 0 ;带入 dv/dt = -p 得 div grad p = 0 。 • 因此为了模拟不可压缩流我们要求保证 p 满足 div grad p = 0 ? • 不妨假设现在 div v ≠ 0 ,然后想办法如何通过修正压强来消除他,即让 div grad p = -div v 。0 码力 | 58 页 | 14.90 MB | 1 年前3
Blazing Trails: Building the World's Fastest CameBoy Emulator in Modern C++bytes Mathematical operations ADD : add or subtract INC : Increment DEC : Decrement MUL : Multiply DIV : Divide Stack operations PUSH: push on stack POP : pop from stackOperators (part 2) Logical Operations reg, constantWatch out for math instructions MUL and DIV! MUL reg DIV reg MUL address DIV address MUL constant DIV constant Target of MUL and DIV is always register A! Why?Types of operands for MOV0 码力 | 91 页 | 8.37 MB | 6 月前3
Peering Forward: C++'s Next DecadeSub)* Add < "+" Factor Sub < "-" Factor Factor < Primary (Mul / Div)* Mul < "*" Primary Div < "/" Primary Primary < Parens / Neg / Pos / Number / Variable Parens0 码力 | 84 页 | 6.21 MB | 6 月前3
jsc::chunk_evenly Range Adaptor for Distributing Work Across Tasksprinciples > ldea inspired by std.range.evenChunks() from the Dlanguage > Expensive computations (div mod)] are computed once per iterator > Branch-less programming for crossing border between smaller0 码力 | 1 页 | 1.38 MB | 6 月前3
To Int or to Uint, This is the Questiondathskovsky@speedata.io | www.linkedin.com/in/alexdathskovsky •ADD – 1 cycle (not piped) •IMUL – 3 cycles •DIV – at least x20 time slower than imul (depending on the architecture)WHAT IS LATENCY: PIPES Alex0 码力 | 102 页 | 3.64 MB | 6 月前3
Vectorizing a CFD Code With std::simd Supplemented by Transparent Loading and Storing𝒕𝒊𝒎𝒆𝑺𝑰𝑴𝑫/𝒕𝒊𝒎𝒆𝒔𝒄𝒂𝒍𝒂𝒓 Zen II Skylake Broadwell Add 1,00 1,23 1,00 Mul 1,00 1,17 1,65 Div 1,00 1,98 4,01Performance Results: CODA test case Wallclock time speedup, lower is better, <1 is an0 码力 | 58 页 | 2.68 MB | 6 月前3
Embracing an Adversarial Mindset for Cpp Securityinline-bool-flag /fsanitize-coverage=edge /fsantize- coverage=trace-cmp /fsanitize-coverage=grace-div Link the libraries: • clang_rt.fuzzer_no_main-x86_64.lib • libsancov.libImportance of a security-focused0 码力 | 92 页 | 3.67 MB | 6 月前3
C++26 Previewnoexcept; templateconstexpr T mul_sat(T x, T y) noexcept; template constexpr T div_sat(T x, T y) noexcept; template constexpr T saturate_cast(U x) noexcept; 1 0 码力 | 118 页 | 2.02 MB | 6 月前3
C++高性能并行编程与优化 - 课件 - 08 CUDA 开启的 GPU 编程--use_fast_math 选项,那么所有对 sinf 的调用都会自动被替换成 __sinf 。 • --ftz=true 会把极小数 (denormal) 退化为 0 。 • --prec-div=false 降低除法的精度换取速度。 • --prec-sqrt=false 降低开方的精度换取速度。 • --fmad 因为非常重要,所以默认就是开启的, 会自动把 a * b + c 优化成乘加0 码力 | 142 页 | 13.52 MB | 1 年前3
共 49 条
- 1
- 2
- 3
- 4
- 5
相关搜索词
SessionTypesinC++高性性能高性能并行编程优化课件09BlazingTrailsBuildingtheWorldFastestCameBoyEmulatorModernPeeringForwardNextDecadejscchunkevenlyRangeAdaptorforDistributingWorkAcrossTasksToIntortoUintThisisQuestionVectorizingCFDCodeWithstdsimdSupplementedbyTransparentLoadingandStoringEmbracinganAdversarialMindsetCppSecurity26Preview08













