-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
d36daaf
commit 2831887
Showing
6 changed files
with
137 additions
and
157 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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> | ||
|
@@ -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 | ||
|
@@ -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 > rvv 1.0 > insns > 算术运算 > mask</i>): <a href="#ID-22a7c201-dbbd-4d4a-9cb5-aeb3752803cf">mask</a> | ||
</p> | ||
</div> | ||
|
@@ -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 > rvv 1.0 > insns > 算术运算 > mask compare</i>): <a href="#ID-0acbe995-d66c-4a6e-a6b1-041c409ce74c">mask compare</a> | ||
</p> | ||
</div> | ||
|
@@ -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"> | ||
|
@@ -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"> | ||
|
@@ -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> | ||
|
@@ -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 > misc > 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 > RISC-V > RISC-V P Extension</i>): <a href="#ID-a05733ad-d9ce-4fc4-b76c-9f15770c0c4b">RISC-V P Extension</a> | ||
</p> | ||
</div> | ||
|
@@ -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 > Standard Extention > 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 > Standard Extention > 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 > RISC-V > 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 > RISC-V > 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 > Parallelism > 后续工作</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 > Parallelism > 后续工作</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> | ||
|
@@ -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> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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> | ||
|
@@ -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> | ||
|
@@ -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<<1+x)<<2` 的 cost, 则这个 expand不会进行 | ||
</p> | ||
|
@@ -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 > impls > 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 > cost 相关 > TARGET_RTX_COSTS</i>): <a href="#ID-50a2267b-7dd0-4a07-997f-9dcc76933ba3">TARGET_RTX_COSTS</a> | ||
</p> | ||
</div> | ||
|
@@ -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> | ||
|
@@ -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 > 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 > 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 > 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 > 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 > 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 > 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> | ||
|
@@ -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> | ||
|
Oops, something went wrong.