Skip to content

Commit

Permalink
beginning of pt2
Browse files Browse the repository at this point in the history
  • Loading branch information
DenisYaroshevskiy committed Feb 16, 2025
1 parent 63fd393 commit 99ec7b0
Show file tree
Hide file tree
Showing 2 changed files with 88 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,22 @@ <h2> This talk </h2>
<li class="fragment"> SIMD ranges are coming </li>
<li class="fragment"> We need to teach you some simd </li>
<li class="fragment"> strlen </li>
<li class="fragment"> reduce </li>
<li class="fragment"> inclusive_scan </li>
<li class="fragment"> min_element </li>
<li class="fragment"> copy_if </li>
<li class="fragment"> search </li>
</ul>
</section>
<section>
<h2> How do you use SIMD today? </h2>
<ul>
<li class="fragment"> I DUNNO WHERE TO PUT THIS SLIDE </li>
<li class="fragment"> libc </li>
<li class="fragment"> mathematics </li>
<li class="fragment"> auto-vectorization </li>
<li class="fragment"> special important libraries (compression/hash_maps) </li>
</ul>
</section>
<section>
<section id='performance of the while loop'>
<script>
Expand All @@ -65,6 +75,11 @@ <h2> This talk </h2>
['std::strlen']);
</script>
</section>
<section>
What's SIMD?
Single Instruction Multiple Data
Wide registers
</section>
</section>
</div>

Expand Down
72 changes: 72 additions & 0 deletions dyaroshev_presentations/conference_talks/from_simd_wrappers_2.html
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,78 @@ <h2>
</h2>
<p>Joel Falcou, Denis Yaroshevskiy</p>
</section>
<section>
<h2> This talk (pt2) </h2>
<ul>
<li class="fragment"> TODO: link to pt2 slides </li>
<li class="fragment"> Some plan thingy here </li>
</ul>
</section>
<section>
<h2> No Magic Compiler for this talk </h2>
<ul>
<li class="fragment"> let's not assume that the compilers do much more
than today </li>
<li class="fragment"> inlining/ collapsing instructions with exactaly
the same semantics </li>
<li class="fragment"> std::unseq is not really a thing (yet?) </li>
<li class="fragment"> there is some code in libc++ - that I coudn't do
anything with </li>
</ul>
</section>
<section>
<h2> Elephant in the ROOM (is this too long? I have no idea) </h2>
<ul>
<li class="fragment"> _this is many slides_ </li>
<li class="fragment"> SVE/RVV don't know the compile time register
size </li>
<li class="fragment"> Mention streaming extensions </li>
<li class="fragment"> show how this affects find from part 1 (not
much) </li>
<li class="fragment"> show how this affects inclusive_scan from part
1, it's tricky </li>
<li class="fragment"> Why std::simd doesn't support this (super new)
</li>
<li class="fragment"> Why eve doesn't support this (the
sizeless_struct that is no more) </li>
<li class="fragment"> How google highway manages to do it by splitting
meta information and intrinsics </li>
<li class="fragment"> If a major compiler gives us a sizeless struct,
we promise to experiment </li>
<li class="fragment"> DLLs approach </li>
<li class="fragment"> One binary approach that is probably not modules
friendly </li>
<li class="fragment"> Hey standard ppl, can we compile multiple
versions of the same function in std c++ please? </li>
</ul>
</section>
<section>
<h2> Importance of extensibility </h2>
<ul>
<li class="fragment"> GF2P8AFFINEQB is "Compute an affine
transformation in the Galois Field 2^8" </li>
<li class="fragment"> Harold Aptroot: <a
href="https://bitmath.blogspot.com/2024/11/histogramming-bytes-with-positional.html">Histogramming
bytes with positional popcount (GF2P8AFFINEQB edition)</a>
</li>
<li> eve is implictly convertible </li>
<li> std::simd supports std:bit_cast </li>
</ul>
</section>
<section>
<h2> Importance of tuning algorithms</h2>
<ul>
<li class="fragment"> People will want to try things </li>
<li class="fragment"> eve exposes unrolling/aligning/cardinal changes </li>
</ul>
</section>
<section>
<h2> Importance of knowing parameter limits</h2>
<ul>
<li class="fragment"> How limiting sin inputs affects generated code </li>
<li class="fragment"> Probably `assume` won't be enough </li>
</ul>
</section>
</div>

<script src="../../dist/reveal.js"></script>
Expand Down

0 comments on commit 99ec7b0

Please sign in to comment.