Skip to content

Commit

Permalink
feat: deploy github page
Browse files Browse the repository at this point in the history
  • Loading branch information
LingKa28 committed Apr 22, 2024
1 parent 93c24e5 commit 52824ff
Show file tree
Hide file tree
Showing 50 changed files with 567 additions and 250 deletions.
Binary file added zh-cn/assets/cover-ca6ff87c.webp
Binary file not shown.
Binary file added zh-cn/assets/cover-fa6a1661.webp
Binary file not shown.
Binary file added zh-cn/assets/image1-78435096.webp
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const v="/zh-cn/assets/cover-92745c95.jpg",e="/zh-cn/assets/image1-638abd39.png",s="/zh-cn/assets/image2-2a8f796e.gif",p="/zh-cn/assets/image3-ae1841b7.png",a="/zh-cn/assets/image4-5bf432ec.png",n="/zh-cn/assets/image5-81eb5b8d.png",l="/zh-cn/assets/image6-537c8738.png",o="/zh-cn/assets/image7-b58de99e.png",i="/zh-cn/assets/image8-c6334c83.png",t="/zh-cn/assets/image9-6340ddaa.png",c="/zh-cn/assets/image10-ac1b70de.png",r="/zh-cn/assets/image11-1f1870d2.png",_="/zh-cn/assets/image12-01c249ea.png",d="/zh-cn/assets/image13-a48112ad.png",m="/zh-cn/assets/image14-d780d4f2.png",u="/zh-cn/assets/image15-f58a4d86.png",h="/zh-cn/assets/image16-79c3985b.png",k="/zh-cn/assets/image17-863e7adb.png",f="/zh-cn/assets/image18-931263d9.png",g="/zh-cn/assets/image19-8f35c101.png",P="/zh-cn/assets/image20-ef5a452f.png",b="/zh-cn/assets/image21-ebff1568.png",j="/zh-cn/assets/image22-b3b3dbaa.png",F="/zh-cn/assets/image23-12fff2c5.png",w=[v,e,s,p,a,n,l,o,i,t,c,r,_,d,m,u,h,k,f,g,P,b,j,F],T={label:"数据流式编程在硬件设计中的应用",description:"数据流式编程(Dataflow Programming)是一种存在已久的程序设计范式,可以追溯到19世纪60年代,由MIT的Jack Dennis教授开创。",cover:"./cover.jpg",location:"中国香港",author:["米明恒"],tags:["硬件加速"],date:"2023-10-26",title:"Application of data flow programming in hardware design"},I=[{label:"数据流式编程的思想",level:2},{label:"数据流式编程思想简介",level:3},{label:"软件开发中的数据流式编程思想",level:3},{label:"软件数据流 vs 硬件数据流",level:3},{label:"数据流思想与状态机思想的对比",level:3},{label:"Bluespec 语言及其流式编程框架 PAClib",level:2},{label:"Bluespec SystemVerilog(BSV)和 PAClib 简介",level:3},{label:"PAClib 中的基础开发组件",level:3},{label:"IFFT 应用实例",level:2},{label:"需求背景",level:3},{label:"代码实现",level:3},{label:"写在最后",level:2}],y=`<h2 id="数据流式编程的思想">数据流式编程的思想</h2>
const v="/zh-cn/assets/cover-92745c95.jpg",e="/zh-cn/assets/image1-638abd39.png",s="/zh-cn/assets/image2-2a8f796e.gif",p="/zh-cn/assets/image3-ae1841b7.png",a="/zh-cn/assets/image4-5bf432ec.png",n="/zh-cn/assets/image5-81eb5b8d.png",l="/zh-cn/assets/image6-537c8738.png",o="/zh-cn/assets/image7-b58de99e.png",i="/zh-cn/assets/image8-c6334c83.png",t="/zh-cn/assets/image9-6340ddaa.png",c="/zh-cn/assets/image10-ac1b70de.png",r="/zh-cn/assets/image11-1f1870d2.png",_="/zh-cn/assets/image12-01c249ea.png",m="/zh-cn/assets/image13-a48112ad.png",d="/zh-cn/assets/image14-d780d4f2.png",u="/zh-cn/assets/image15-f58a4d86.png",h="/zh-cn/assets/image16-79c3985b.png",k="/zh-cn/assets/image17-863e7adb.png",f="/zh-cn/assets/image18-931263d9.png",g="/zh-cn/assets/image19-8f35c101.png",P="/zh-cn/assets/image20-ef5a452f.png",b="/zh-cn/assets/image21-ebff1568.png",j="/zh-cn/assets/image22-b3b3dbaa.png",F="/zh-cn/assets/image23-12fff2c5.png",w=[v,e,s,p,a,n,l,o,i,t,c,r,_,m,d,u,h,k,f,g,P,b,j,F],T={label:"数据流式编程在硬件设计中的应用",description:"数据流式编程(Dataflow Programming)是一种存在已久的程序设计范式,可以追溯到19世纪60年代,由MIT的Jack Dennis教授开创。",cover:"./cover.jpg",location:"中国香港",author:["米明恒"],tags:["硬件加速"],date:"2023-10-26",title:"Application of data flow programming in hardware design"},y=[{label:"数据流式编程的思想",level:2},{label:"数据流式编程思想简介",level:3},{label:"软件开发中的数据流式编程思想",level:3},{label:"软件数据流 vs 硬件数据流",level:3},{label:"数据流思想与状态机思想的对比",level:3},{label:"Bluespec 语言及其流式编程框架 PAClib",level:2},{label:"Bluespec SystemVerilog(BSV)和 PAClib 简介",level:3},{label:"PAClib 中的基础开发组件",level:3},{label:"IFFT 应用实例",level:2},{label:"需求背景",level:3},{label:"代码实现",level:3},{label:"写在最后",level:2}],I=`<h2 id="数据流式编程的思想">数据流式编程的思想</h2>
<h3 id="数据流式编程思想简介">数据流式编程思想简介</h3>
<p>数据流式编程(Dataflow Programming)是一种存在已久的程序设计范式,可以追溯到 19 世纪 60 年代,由 MIT 的 Jack Dennis 教授开创。</p>
<p><img src="${e}" alt="图片"></p>
Expand Down Expand Up @@ -147,7 +147,7 @@ endinterface
PipeOut #(b) pob )
(PipeOut #(c));
</code></pre>
<p><img src="${d}" alt="图片"></p>
<p><img src="${m}" alt="图片"></p>
<p>图 13 mkFork 与 mkJoin 节点的示意图</p>
<p><code>mkFork</code> 和 <code>mkJoin</code> 可以创建简单的并行结构,通过用户自己提供的函数 fork_fn 和 join_fn,由用户决定如何将一个输入数据流拆分成 2 个输出数据流,以及如何把两个输入数据流合并为一个输出数据流。对于 Join 操作而言,要求两个输入端口上均存在数据时,该 Node 才可以执行操作,如果两条路径上处理数据所需的时钟周期数不一致,则 Join 节点会进行等待,直到两个输入都有数据为止。此外,PAClib 中还提供了多种 Fork 节点的变种实现,可以自行了解。</p>
<h4>条件分支操作</h4>
Expand All @@ -158,7 +158,7 @@ endinterface
PipeOut #(Tuple2 #(a, Bool)) poa)
(PipeOut #(b));
</code></pre>
<p><img src="${m}" alt="图片"></p>
<p><img src="${d}" alt="图片"></p>
<p>图 14 mkIfThenElse 节点示意图</p>
<p><code>mkIfThenElse</code> 可以实现分支逻辑。输入数据是一个 <code>Tuple2#(a, Bool)</code>类型,该节点会根据 Bool 类型的取值将数据包路由到 <code>pipeT</code> 或者 <code>pipeF</code> 子节点。其内部具有一个 FIFO 结构用于存储 Token,从而实现在 pipeT 和 pipeF 两个节点所需处理周期不一致时起到保序的作用。</p>
<p>此外,PAClib 中还提供了 <code>mkIfThenElse_unordered</code> 变种实现,当对输入和输出之间的数据没有严格的顺序要求时,可以使用这个变种来简化设计。For 循环 使用 <code>mkForLoop</code> 可以创建条件分支,其定义及示意图如下:</p>
Expand Down Expand Up @@ -286,4 +286,4 @@ endfunction
<p>参考资料:</p>
<p>[1] <a href="https://en.wikipedia.org/wiki/Dataflow_programming">https://en.wikipedia.org/wiki/Dataflow_programming</a></p>
<p>[2] Rishiyur S. Nikhil. Two uses of FP techniques in HW design[EB/OL]. 2010[].</p>
<p><a href="http://www.cs.ox.ac.uk/ralf.hinze/WG2.8/27/slides/rishiyur2.pdf">http://www.cs.ox.ac.uk/ralf.hinze/WG2.8/27/slides/rishiyur2.pdf</a>.</p>`;export{w as assetURLs,y as default,T as metadata,I as toc};
<p><a href="http://www.cs.ox.ac.uk/ralf.hinze/WG2.8/27/slides/rishiyur2.pdf">http://www.cs.ox.ac.uk/ralf.hinze/WG2.8/27/slides/rishiyur2.pdf</a>.</p>`;export{w as assetURLs,I as default,T as metadata,y as toc};
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const s="/zh-cn/assets/cover-39643179.png",e="/zh-cn/assets/image1-a93ba076.jpg",t="/zh-cn/assets/image2-4624885a.gif",p="/zh-cn/assets/image3-ea54df7e.jpg",a=[s,e,t,p],l={label:"直播预告 | RDMA软件接口高层封装",description:"RDMA 作为高速通信协议被数据中心广泛使用,但是因为底层接口设计得过于繁复,对使用者造成了很大的不便,因此我们使用 Rust 语言对 RDMA 进行了一层高层封装。这次分享将介绍这层封装的做法和原理。",cover:"./cover.png",location:"香港",date:"2022-05-17",title:"RDMA Software Interface High Level Package"},c=[{label:"嘉宾介绍",level:2},{label:"讨论内容",level:2},{label:"观看方式",level:2},{label:"特别鸣谢",level:2}],n=`<h2 id="嘉宾介绍">嘉宾介绍</h2>
const s="/zh-cn/assets/cover-39643179.png",e="/zh-cn/assets/image1-a93ba076.jpg",t="/zh-cn/assets/image2-4624885a.gif",p="/zh-cn/assets/image3-ea54df7e.jpg",a=[s,e,t,p],c={label:"直播预告 | RDMA软件接口高层封装",description:"RDMA 作为高速通信协议被数据中心广泛使用,但是因为底层接口设计得过于繁复,对使用者造成了很大的不便,因此我们使用 Rust 语言对 RDMA 进行了一层高层封装。这次分享将介绍这层封装的做法和原理。",cover:"./cover.png",location:"香港",date:"2022-05-17",title:"RDMA Software Interface High Level Package"},l=[{label:"嘉宾介绍",level:2},{label:"讨论内容",level:2},{label:"观看方式",level:2},{label:"特别鸣谢",level:2}],n=`<h2 id="嘉宾介绍">嘉宾介绍</h2>
<p>施继成</p>
<p>达坦科技联合创始人兼 CTO,复旦大学软件工程本硕,师从华为基础软件首席科学家、鸿蒙实验室主任陈海波教授。擅长操作系统内核开发、分布式系统、嵌入式系统,对分布式数据一致性有钻深的研究,发表多篇操作系统内核相关论文,累计数百次引用。毕业后曾在谷歌中国、微软亚太和阿里巴巴等公司从事分布式计算和存储等相关工作。入选 2022 年度 6 氪 S 级创业者名册,荣获中国“企业工具与底层软件”领域 “36 位 36 岁以下创业者“称号。</p>
<h2 id="讨论内容">讨论内容</h2>
Expand All @@ -17,4 +17,4 @@ const s="/zh-cn/assets/cover-39643179.png",e="/zh-cn/assets/image1-a93ba076.jpg"
<p><strong>转发本文,文末留言提问、加群提问、或者现场提问,我们将赠送 1 本书,数量有限,送完为止。</strong></p>
<p>↓ 扫码加入本次直播交流群;</p>
<p><img src="${p}" alt="图片"></p>
<p>咨询的小伙伴,可添加小月@阅码场的微信 <strong>Linuxer2016</strong> 咨询</p>`;export{a as assetURLs,n as default,l as metadata,c as toc};
<p>咨询的小伙伴,可添加小月@阅码场的微信 <strong>Linuxer2016</strong> 咨询</p>`;export{a as assetURLs,n as default,c as metadata,l as toc};
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const l="/zh-cn/assets/cover-6865ae02.png",i=[l],e={label:"Xline v0.6.1: 一个用于元数据管理的分布式KV存储",description:"Xline是一个基于Curp协议的,用于管理元数据的分布式KV存储。现有的分布式KV存储大多采用Raft共识协议,需要两次RTT才能完成一次请求。当部署在单个数据中心时,节点之间的延迟较低,因此不会对性能产生大的影响。但是,当跨数据中心部署时,节点之间的延迟可能是几十或几百毫秒,此时 Raft 协议将成为性能瓶颈。Curp 协议就是为了解决这个问题而设计的。它可以在命令不冲突的情况下减少一个RTT,从而提高性能。因此,Xline旨在实现高性能的数据访问和跨数据中心场景下的强一致性。",cover:"./cover.png",location:"新疆",author:["准备开社区会议的"],tags:["Xline"],date:"2024-01-18",title:"Xline v0.6.1: a distributed KV store for metadata management"},t=[{label:"Xline是什么?我们为什么要做Xline?",level:2},{label:"V0.6.1版本有什么新功能?",level:2},{label:"社区会议",level:2}],n=`<p><img src="${l}" alt="封面"></p>
const l="/zh-cn/assets/cover-6865ae02.png",i=[l],t={label:"Xline v0.6.1: 一个用于元数据管理的分布式KV存储",description:"Xline是一个基于Curp协议的,用于管理元数据的分布式KV存储。现有的分布式KV存储大多采用Raft共识协议,需要两次RTT才能完成一次请求。当部署在单个数据中心时,节点之间的延迟较低,因此不会对性能产生大的影响。但是,当跨数据中心部署时,节点之间的延迟可能是几十或几百毫秒,此时 Raft 协议将成为性能瓶颈。Curp 协议就是为了解决这个问题而设计的。它可以在命令不冲突的情况下减少一个RTT,从而提高性能。因此,Xline旨在实现高性能的数据访问和跨数据中心场景下的强一致性。",cover:"./cover.png",location:"新疆",author:["准备开社区会议的"],tags:["Xline"],date:"2024-01-18",title:"Xline v0.6.1: a distributed KV store for metadata management"},e=[{label:"Xline是什么?我们为什么要做Xline?",level:2},{label:"V0.6.1版本有什么新功能?",level:2},{label:"社区会议",level:2}],n=`<p><img src="${l}" alt="封面"></p>
<h2 id="xline是什么?我们为什么要做xline?">Xline是什么?我们为什么要做Xline?</h2>
<p><strong>Xline是一个基于Curp协议的,用于管理元数据的分布式KV存储。</strong> 现有的分布式KV存储大多采用Raft共识协议,需要两次RTT才能完成一次请求。当部署在单个数据中心时,节点之间的延迟较低,因此不会对性能产生大的影响。</p>
<p>但是,当跨数据中心部署时,节点之间的延迟可能是几十或几百毫秒,此时 Raft 协议将成为性能瓶颈。Curp 协议就是为了解决这个问题而设计的。它可以在命令不冲突的情况下减少一个RTT,从而提高性能。因此,<strong>Xline旨在实现高性能的数据访问和跨数据中心场景下的强一致性。</strong></p>
Expand Down Expand Up @@ -36,4 +36,4 @@ const l="/zh-cn/assets/cover-6865ae02.png",i=[l],e={label:"Xline v0.6.1: 一
<strong>会议号</strong>: 874 4309 5241
<strong>密码</strong>: 124294
<strong>会议链接</strong>:
<a href="https://zoom.us/j/87443095241?pwd=r3uJhJ9cb0caovHRsi1ay2pFuhBA1Q.1">https://zoom.us/j/87443095241?pwd=r3uJhJ9cb0caovHRsi1ay2pFuhBA1Q.1</a></p>`;export{i as assetURLs,n as default,e as metadata,t as toc};
<a href="https://zoom.us/j/87443095241?pwd=r3uJhJ9cb0caovHRsi1ay2pFuhBA1Q.1">https://zoom.us/j/87443095241?pwd=r3uJhJ9cb0caovHRsi1ay2pFuhBA1Q.1</a></p>`;export{i as assetURLs,n as default,t as metadata,e as toc};
Loading

0 comments on commit 52824ff

Please sign in to comment.