Skip to content

Commit

Permalink
nil
Browse files Browse the repository at this point in the history
  • Loading branch information
sunwayforever committed Nov 28, 2023
1 parent d36daaf commit 2831887
Show file tree
Hide file tree
Showing 6 changed files with 137 additions and 157 deletions.
10 changes: 5 additions & 5 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,12 @@
<div id="content" class="content">
<h1 class="title">Talk Is Cheap</h1>
<ul class="org-ul">
<li><a href="toolchain/gcc_pass.html">GCC Pass</a></li>
<li><a href="toolchain/gcc_mtune.html">GCC mtune</a></li>
<li><a href="toolchain/gcc_cost.html">GCC Cost</a></li>
<li><a href="toolchain/linker_relocation.html">Linker Relocation</a></li>
<li><a href="riscv/riscv_vector_extension.html">RISC-V Vector Extension</a></li>
<li><a href="toolchain/linker_relocation.html">Linker Relocation</a></li>
<li><a href="toolchain/linker_relaxation.html">Linker Relaxation</a></li>
<li><a href="toolchain/gcc_cost.html">GCC Cost</a></li>
<li><a href="toolchain/gcc_mtune.html">GCC mtune</a></li>
<li><a href="toolchain/gcc_pass.html">GCC Pass</a></li>
<li><a href="toolchain/gcc_attribute.html">GCC Attribute</a></li>
<li><a href="toolchain/bfd_tutorial.html">BFD Tutorial</a></li>
<li><a href="toolchain/strict_aliasing.html">Strict Aliasing</a></li>
Expand All @@ -43,7 +44,6 @@ <h1 class="title">Talk Is Cheap</h1>
<li><a href="android/dex2oat.html">dex2oat</a></li>
<li><a href="toolchain/riscv_debug_module.html">RISC-V Debug Module</a></li>
<li><a href="toolchain/unsigned_int_in_riscv.html">Unsigned Int In RISC-V</a></li>
<li><a href="toolchain/linker_relaxation.html">Linker Relaxation</a></li>
<li><a href="tvm/tvm_quantization.html">TVM Quantization</a></li>
<li><a href="riscv/buildroot.html">Buildroot</a></li>
<li><a href="toolchain/binutils.html">binutils</a></li>
Expand Down
46 changes: 23 additions & 23 deletions riscv/riscv_vector_extension.html
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ <h2>Table of Contents</h2>
<li><a href="#org000007e">1.3.3. impls</a></li>
</ul>
</li>
<li><a href="#org000008a">1.4. example</a>
<li><a href="#org000008b">1.4. example</a>
<ul>
<li><a href="#org0000084">1.4.1. matmul with rvv assembly:</a></li>
<li><a href="#org0000087">1.4.2. matmul with rvv intrinsic:</a></li>
Expand Down Expand Up @@ -319,8 +319,8 @@ <h4 id="org000001f"><span class="section-number-4">1.2.2.</span> vsetvl</h4>
</p>
</div>

<div id="outline-container-org000001c" class="outline-5">
<h5 id="org000001c"><span class="section-number-5">1.2.2.1.</span> example</h5>
<div id="outline-container-org000008a" class="outline-5">
<h5 id="org000008a"><span class="section-number-5">1.2.2.1.</span> example</h5>
<div class="outline-text-5" id="text-1-2-2-1">
<div class="org-src-container">
<pre class="src src-asm"> <span class="org-keyword">.global</span> main
Expand Down Expand Up @@ -452,10 +452,10 @@ <h6 id="ID-22a7c201-dbbd-4d4a-9cb5-aeb3752803cf"><span class="section-number-6">


<ul class="org-ul">
<li><a id="org0000022"></a>Backlinks<br />
<div class="outline-text-7" id="text-org0000022">
<li><a id="org000009d"></a>Backlinks<br />
<div class="outline-text-7" id="text-org000009d">
<p>
<a href="../../../../Syncthing/Gitbox/drops/note/riscv/riscv_vector_extension.html#ID-1a3f764a-c401-4233-bd66-f809ada336f1">RISC-V Vector Extension</a>
<a href="riscv_vector_extension.html#ID-1a3f764a-c401-4233-bd66-f809ada336f1">RISC-V Vector Extension</a>
(<i>RISC-V Vector Extension &gt; rvv 1.0 &gt; insns &gt; 算术运算 &gt; mask</i>): <a href="#ID-22a7c201-dbbd-4d4a-9cb5-aeb3752803cf">mask</a>
</p>
</div>
Expand Down Expand Up @@ -521,7 +521,7 @@ <h6 id="ID-0acbe995-d66c-4a6e-a6b1-041c409ce74c"><span class="section-number-6">
<li><a id="org0000025"></a>Backlinks<br />
<div class="outline-text-7" id="text-org0000025">
<p>
<a href="../../../../Syncthing/Gitbox/drops/note/riscv/riscv_vector_extension.html#ID-1a3f764a-c401-4233-bd66-f809ada336f1">RISC-V Vector Extension</a>
<a href="riscv_vector_extension.html#ID-1a3f764a-c401-4233-bd66-f809ada336f1">RISC-V Vector Extension</a>
(<i>RISC-V Vector Extension &gt; rvv 1.0 &gt; insns &gt; 算术运算 &gt; mask compare</i>): <a href="#ID-0acbe995-d66c-4a6e-a6b1-041c409ce74c">mask compare</a>
</p>
</div>
Expand Down Expand Up @@ -1144,8 +1144,8 @@ <h4 id="org000007e"><span class="section-number-4">1.3.3.</span> impls</h4>
</div>
</div>

<div id="outline-container-org000008a" class="outline-3">
<h3 id="org000008a"><span class="section-number-3">1.4.</span> example</h3>
<div id="outline-container-org000008b" class="outline-3">
<h3 id="org000008b"><span class="section-number-3">1.4.</span> example</h3>
<div class="outline-text-3" id="text-1-4">
</div>
<div id="outline-container-org0000084" class="outline-4">
Expand Down Expand Up @@ -1371,7 +1371,7 @@ <h3 id="org000008e"><span class="section-number-3">1.5.</span> gcc rvv auto vect

<p>
代码使用了 <code>__restrict</code> 关键字, 告诉编译器不需要考虑 a 和 b 有重叠的情况, 参考
<a href="../../../../Syncthing/Gitbox/drops/note/toolchain/strict_aliasing.html#ID-b9e67760-505d-4dab-b333-1a270676f357">Strict Aliasing</a>
<a href="../toolchain/strict_aliasing.html#ID-b9e67760-505d-4dab-b333-1a270676f357">Strict Aliasing</a>
</p>

<pre class="example" id="org000008d">
Expand Down Expand Up @@ -1425,7 +1425,7 @@ <h4 id="ID-a05733ad-d9ce-4fc4-b76c-9f15770c0c4b"><span class="section-number-4">
</p>

<p>
<a href="../../../../Syncthing/Gitbox/drops/note/toolchain/gcc_builtin.html#ID-7f27529a-db21-45ae-8cbe-e5736353d2ba">riscv builtin</a>
<a href="../toolchain/gcc_builtin.html#ID-7f27529a-db21-45ae-8cbe-e5736353d2ba">riscv builtin</a>
</p>

<p>
Expand All @@ -1451,12 +1451,12 @@ <h4 id="ID-a05733ad-d9ce-4fc4-b76c-9f15770c0c4b"><span class="section-number-4">
<h5 id="org0000094">Backlinks</h5>
<div class="outline-text-5" id="text-org0000094">
<p>
<a href="../../../../Syncthing/Gitbox/drops/note/toolchain/gcc_backend.html#ID-02e7f924-9cf7-4e3d-8ceb-1765fd3a2bed">GCC Backend</a>
<a href="../toolchain/gcc_backend.html#ID-02e7f924-9cf7-4e3d-8ceb-1765fd3a2bed">GCC Backend</a>
(<i>GCC Backend &gt; misc &gt; intrinsic</i>): 通过 intrinsic 可以扩展 gcc 以支持 backend 自定义指令. 例如, 假设 backend 包含许 多 dsp 指令 (例如 <a href="#ID-a05733ad-d9ce-4fc4-b76c-9f15770c0c4b">RISC-V P Extension</a>), 那么支持它有两种方式:
</p>

<p>
<a href="../../../../Syncthing/Gitbox/drops/note/toolchain/simd.html#ID-d12562cf-b991-412b-b3ac-b44a0f92ae0b">SIMD</a>
<a href="../toolchain/simd.html#ID-d12562cf-b991-412b-b3ac-b44a0f92ae0b">SIMD</a>
(<i>SIMD &gt; RISC-V &gt; RISC-V P Extension</i>): <a href="#ID-a05733ad-d9ce-4fc4-b76c-9f15770c0c4b">RISC-V P Extension</a>
</p>
</div>
Expand All @@ -1467,22 +1467,22 @@ <h5 id="org0000094">Backlinks</h5>



<div id="outline-container-org000009d" class="outline-2 references">
<h2 id="org000009d">Backlinks</h2>
<div class="outline-text-2" id="text-org000009d">
<div id="outline-container-org000009e" class="outline-2 references">
<h2 id="org000009e">Backlinks</h2>
<div class="outline-text-2" id="text-org000009e">
<p>
<a href="../../../../Syncthing/Gitbox/drops/note/riscv/riscv_tutorial.html#ID-653c6b58-7ee1-4e07-bf3f-d5eea450748e">RISC-V Tutorial</a>
(<i>RISC-V Tutorial &gt; Standard Extention &gt; RV32V</i>): <a href="../../../../Syncthing/Gitbox/drops/note/riscv/riscv_vector_extension.html#ID-1a3f764a-c401-4233-bd66-f809ada336f1">RISC-V Vector Extension</a>
<a href="riscv_tutorial.html#ID-653c6b58-7ee1-4e07-bf3f-d5eea450748e">RISC-V Tutorial</a>
(<i>RISC-V Tutorial &gt; Standard Extention &gt; RV32V</i>): <a href="riscv_vector_extension.html#ID-1a3f764a-c401-4233-bd66-f809ada336f1">RISC-V Vector Extension</a>
</p>

<p>
<a href="../../../../Syncthing/Gitbox/drops/note/toolchain/simd.html#ID-d12562cf-b991-412b-b3ac-b44a0f92ae0b">SIMD</a>
(<i>SIMD &gt; RISC-V &gt; RISC-V Vector Extension</i>): <a href="../../../../Syncthing/Gitbox/drops/note/riscv/riscv_vector_extension.html#ID-1a3f764a-c401-4233-bd66-f809ada336f1">RISC-V Vector Extension</a>
<a href="../toolchain/simd.html#ID-d12562cf-b991-412b-b3ac-b44a0f92ae0b">SIMD</a>
(<i>SIMD &gt; RISC-V &gt; RISC-V Vector Extension</i>): <a href="riscv_vector_extension.html#ID-1a3f764a-c401-4233-bd66-f809ada336f1">RISC-V Vector Extension</a>
</p>

<p>
<a href="../../../../Syncthing/Gitbox/drops/note/tensorflow/tensorflow_architecture_parallelism.html#ID-d4639ca8-9dbc-4207-a196-fc427b7e12fc">Tensorflow Architecture: Parallism</a>
(<i>Tensorflow Architecture: Parallism &gt; Parallelism &gt; 后续工作</i>): 利用 RISC-V 的 <a href="../../../../Syncthing/Gitbox/drops/note/riscv/riscv_vector_extension.html#ID-1a3f764a-c401-4233-bd66-f809ada336f1">vector</a> 或 SIMD 指令加速 <a href="../../../../Syncthing/Gitbox/drops/note/tech/eigen.html#ID-5b642561-2b6e-443b-8da6-73a227b47946">eigen</a> 的 CPU device, 现在 `Eigen/src/Core/arch` 下已经包含 NEON, SSE, AVX, AVX512 等.
<a href="../tensorflow/tensorflow_architecture_parallelism.html#ID-d4639ca8-9dbc-4207-a196-fc427b7e12fc">Tensorflow Architecture: Parallism</a>
(<i>Tensorflow Architecture: Parallism &gt; Parallelism &gt; 后续工作</i>): 利用 RISC-V 的 <a href="riscv_vector_extension.html#ID-1a3f764a-c401-4233-bd66-f809ada336f1">vector</a> 或 SIMD 指令加速 <a href="../tech/eigen.html#ID-5b642561-2b6e-443b-8da6-73a227b47946">eigen</a> 的 CPU device, 现在 `Eigen/src/Core/arch` 下已经包含 NEON, SSE, AVX, AVX512 等.
</p>
</div>
</div>
Expand All @@ -1491,7 +1491,7 @@ <h2 id="org000009d">Backlinks</h2>

<p class="author">Author: [email protected]<br />
Date: 2022-04-28 Thu 19:05<br />
Last updated: 2023-11-21 Tue 15:30</p>
Last updated: 2023-11-28 Tue 14:58</p>
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="知识共享许可协议" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a>
</div>
</body>
Expand Down
34 changes: 17 additions & 17 deletions toolchain/gcc_cost.html
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ <h1 class="title">GCC Cost</h1>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
<li><a href="#org0000021">1. GCC Cost</a>
<li><a href="#org0000020">1. GCC Cost</a>
<ul>
<li><a href="#ID-50a2267b-7dd0-4a07-997f-9dcc76933ba3">1.1. TARGET_RTX_COSTS</a></li>
<li><a href="#org0000003">1.2. mtune</a></li>
Expand All @@ -40,8 +40,8 @@ <h2>Table of Contents</h2>
</div>
</div>

<div id="outline-container-org0000021" class="outline-2">
<h2 id="org0000021"><span class="section-number-2">1.</span> GCC Cost</h2>
<div id="outline-container-org0000020" class="outline-2">
<h2 id="org0000020"><span class="section-number-2">1.</span> GCC Cost</h2>
<div class="outline-text-2" id="text-1">
<p>
<a href="https://kristerw.blogspot.com/2018/01/gcc-back-end-performance-tuning.html">https://kristerw.blogspot.com/2018/01/gcc-back-end-performance-tuning.html</a>
Expand All @@ -60,7 +60,7 @@ <h2 id="org0000021"><span class="section-number-2">1.</span> GCC Cost</h2>
<h3 id="ID-50a2267b-7dd0-4a07-997f-9dcc76933ba3"><span class="section-number-3">1.1.</span> TARGET_RTX_COSTS</h3>
<div class="outline-text-3" id="text-1-1">
<p>
<a href="../../../../Syncthing/Gitbox/drops/note/toolchain/gcc_expand_mult.html#ID-5cd7feb7-6e6c-47b5-b63c-6465c8354c1a">GCC Expand Mult</a> 为例, gcc 决定 mul 是否 expand 成 shift 时, 需要通过
<a href="gcc_expand_mult.html#ID-5cd7feb7-6e6c-47b5-b63c-6465c8354c1a">GCC Expand Mult</a> 为例, gcc 决定 mul 是否 expand 成 shift 时, 需要通过
TARGET_RTX_COSTS 这个 来找到各个 insn 的 cost, 例如, 如果 `x*12`
的 cost 小于 `(x&lt;&lt;1+x)&lt;&lt;2` 的 cost, 则这个 expand不会进行
</p>
Expand Down Expand Up @@ -120,16 +120,16 @@ <h3 id="ID-50a2267b-7dd0-4a07-997f-9dcc76933ba3"><span class="section-number-3">
</div>


<div id="outline-container-org0000025" class="outline-4 references">
<h4 id="org0000025">Backlinks</h4>
<div class="outline-text-4" id="text-org0000025">
<div id="outline-container-org0000024" class="outline-4 references">
<h4 id="org0000024">Backlinks</h4>
<div class="outline-text-4" id="text-org0000024">
<p>
<a href="../../../../Syncthing/Gitbox/drops/note/toolchain/gcc_expand_mult.html#ID-5cd7feb7-6e6c-47b5-b63c-6465c8354c1a">GCC Expand Mult</a>
<a href="gcc_expand_mult.html#ID-5cd7feb7-6e6c-47b5-b63c-6465c8354c1a">GCC Expand Mult</a>
(<i>GCC Expand Mult &gt; impls &gt; set_src_cost</i>): set_src_cost 最终会调用到 <a href="#ID-50a2267b-7dd0-4a07-997f-9dcc76933ba3">TARGET_RTX_COSTS</a> 这个 target hook
</p>

<p>
<a href="../../../../Syncthing/Gitbox/drops/note/toolchain/gcc_target_hook.html#ID-ecd308f9-413b-467a-8d55-10bd7485a2bc">GCC Target Hook</a>
<a href="gcc_target_hook.html#ID-ecd308f9-413b-467a-8d55-10bd7485a2bc">GCC Target Hook</a>
(<i>GCC Target Hook &gt; cost 相关 &gt; TARGET_RTX_COSTS</i>): <a href="#ID-50a2267b-7dd0-4a07-997f-9dcc76933ba3">TARGET_RTX_COSTS</a>
</p>
</div>
Expand All @@ -141,7 +141,7 @@ <h4 id="org0000025">Backlinks</h4>
<h3 id="org0000003"><span class="section-number-3">1.2.</span> mtune</h3>
<div class="outline-text-3" id="text-1-2">
<p>
<a href="../../../../Syncthing/Gitbox/drops/note/toolchain/gcc_mtune.html#ID-4ffdf575-b73e-4554-af73-a8dd49dfb3e5">mtune</a> 中定义了 branch_cost, memory_cost, fp_add/fp_mul 等 cost
<a href="gcc_mtune.html#ID-4ffdf575-b73e-4554-af73-a8dd49dfb3e5">mtune</a> 中定义了 branch_cost, memory_cost, fp_add/fp_mul 等 cost
</p>
</div>
</div>
Expand All @@ -152,18 +152,18 @@ <h3 id="org0000003"><span class="section-number-3">1.2.</span> mtune</h3>
<h2 id="org0000009">Backlinks</h2>
<div class="outline-text-2" id="text-org0000009">
<p>
<a href="../../../../Syncthing/Gitbox/drops/note/toolchain/gcc.html#ID-19df5597-4fd4-47a1-9534-f6e0c327e8d5">GCC</a>
(<i>GCC &gt; Cost</i>): <a href="../../../../Syncthing/Gitbox/drops/note/toolchain/gcc_cost.html#ID-2599fa0b-be86-4b12-a480-ee638a440b1d">Cost</a>
<a href="gcc.html#ID-19df5597-4fd4-47a1-9534-f6e0c327e8d5">GCC</a>
(<i>GCC &gt; Cost</i>): <a href="gcc_cost.html#ID-2599fa0b-be86-4b12-a480-ee638a440b1d">Cost</a>
</p>

<p>
<a href="../../../../Syncthing/Gitbox/drops/note/toolchain/gcc_target_hook.html#ID-ecd308f9-413b-467a-8d55-10bd7485a2bc">GCC Target Hook</a>
(<i>GCC Target Hook &gt; cost 相关</i>): <a href="../../../../Syncthing/Gitbox/drops/note/toolchain/gcc_cost.html#ID-2599fa0b-be86-4b12-a480-ee638a440b1d">cost</a> 相关
<a href="gcc_target_hook.html#ID-ecd308f9-413b-467a-8d55-10bd7485a2bc">GCC Target Hook</a>
(<i>GCC Target Hook &gt; cost 相关</i>): <a href="gcc_cost.html#ID-2599fa0b-be86-4b12-a480-ee638a440b1d">cost</a> 相关
</p>

<p>
<a href="../../../../Syncthing/Gitbox/drops/note/toolchain/gcc_scheduler.html#ID-83e0d370-1b5f-49c6-b151-46a9e108d076">microarchitecture</a>
(<i>GCC Scheduler &gt; microarchitecture</i>): scheduler 工作时需要一个关键信息是指令的 latency, 例如 `sqrtsf2` 的 latency 在 sifive-3 是 25, 在 sifive-7 是 27, 这个值看起来和 <a href="../../../../Syncthing/Gitbox/drops/note/toolchain/gcc_cost.html#ID-2599fa0b-be86-4b12-a480-ee638a440b1d">GCC Cost</a> 有点类似?
<a href="gcc_scheduler.html#ID-83e0d370-1b5f-49c6-b151-46a9e108d076">microarchitecture</a>
(<i>GCC Scheduler &gt; microarchitecture</i>): scheduler 工作时需要一个关键信息是指令的 latency, 例如 `sqrtsf2` 的 latency 在 sifive-3 是 25, 在 sifive-7 是 27, 这个值看起来和 <a href="gcc_cost.html#ID-2599fa0b-be86-4b12-a480-ee638a440b1d">GCC Cost</a> 有点类似?
</p>
</div>
</div>
Expand All @@ -172,7 +172,7 @@ <h2 id="org0000009">Backlinks</h2>

<p class="author">Author: [email protected]<br />
Date: 2022-04-24 Sun 15:49<br />
Last updated: 2023-11-27 Mon 17:19</p>
Last updated: 2023-11-28 Tue 14:54</p>
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="知识共享许可协议" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a>
</div>
</body>
Expand Down
Loading

0 comments on commit 2831887

Please sign in to comment.