自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 torch nn Linear 大揭秘——从python到CUDA

从顶到低剖析 nn.Linear ,一起探讨 pytorch 的秘密

2024-02-28 00:04:06 1023

原创 Google TPU的发展历程与思考(二)

TPUv2 和 TPUv3 架构简介

2022-10-27 19:50:58 1046

原创 玄铁C910内存管理与地址转换技术

C910 兼容 RISC-V 架构,采用12级超标量流水线,针对算术运算、内存访问以及多核同步等方面进行了优化,同时标配内存管理单元,可运行 Linux 等操作系统;采用3发射、8执行的深度乱序执行架构,配有单/双精度浮点单元,可进一步选配面向矢量运算引擎,适用于人工智能、5G、边缘服务器等对性能要求很高的应用领域。C910 是个开源的 RISC-V CPU,它的代码实现具体在可见。C910 MMU(Memory Management Unit)兼容 RISC-V SV39 标准。

2022-10-07 15:43:12 1992 1

转载 Code bloat has become astronomical

代码臃肿已成常态:99% 计算机资源都被浪费掉了

2022-08-10 16:37:38 156

原创 Dennard Scaling

Dennard ScalingDennard Scaling,也被称为 MOSFET Scaling,其大致意思是,虽然晶体管尺寸在每一代产品中会变小,但它们的功率密度保持不变。因此功耗与电路面积成正比关系;电压和电流则均按晶体管尺寸长度降低。这一定律最初是为 MOSFET 制定的,最早出现于 1974年 Robert H. Dennard 合著的一篇论文。推导具体来说,Dennard 注意到每一代芯片上:晶体管的维度会比上一代缩小约 30%(0.7x),于是:晶体管的占用面积会减少 50%,

2022-04-10 00:57:12 1042

原创 Linux 网络编程之 TINY 程序

在tiny程序中从零开始学习web服务程序

2022-02-10 13:35:18 1402

原创 用RIO包健壮地读写

用RIO包健壮地读写RIO 包全名为 Robust IO 函数包。包中函数是对 Linux 基本 I/O 函数的封装,使其更加健壮、高效,更适用于网络编程。具体来说,它会自动处理读写中的不足值情况。这种情况在网络应用中经常出现,因此编写网络程序时,我们经常用到它。CSAPP 中实现的 RIO 提供了两类不同的函数:无缓冲的 I/O 函数。无应用级的缓冲,对二进制数据读写到网络和从网络读写到二进制数据尤为有用。有缓冲的 I/O 函数。从文本读取文本行和二进制,并会被缓存在应用级缓冲区中,该缓冲区是线

2022-01-02 11:35:09 1260

原创 Google TPU的发展历程与思考(一)

Google TPU的架构与思考

2021-12-19 15:28:51 3680

原创 Linux 下网络编程之协议无关方法

协议无关方法Linux 提供了很多强大的函数,实现了二进制套接字地址结构和主机名、主机地址、服务名和端口号的字符串表示之间的相互转化。若和套接字一起使用,就可以开发出独立于协议的网络程序。0、数据结构在一切开始之前,我们需要简单回顾表示二进制套接字地址结构的数据结构 addrinfo。因为接下来介绍的函数都与它密切相关。struct addrinfo { int ai_flags; /* Input flags. */ int ai_family

2021-12-12 13:43:47 745

原创 初学 Qt 之从零开始的中国象棋小游戏(一)

最近对 Qt 这个跨平台 C++ 图形应用程序框架很感兴趣,闲暇时间多学了一下,收获很多,也踩了不少坑,在这里记录一下,分享心得。Qt 的安装安装 Qt 并不麻烦,就是网速有点慢。推荐使用国内镜像代理下载。首先进入 Qt 官网,在 Try Qt 处点击 Download Qt,填完基本信息后,点击提交就可以下载 Qt 下载器了。当然,你也可以直接去国内镜像站上下载 Qt 下载器。打开 Qt 下载器,注册 Qt 账户,并登录,同意协议。若要使用国内镜像代理,点击左下角的配置图标。然后从百度上选择

2021-11-23 19:26:14 2994

原创 Vim 小技巧:自动写入文件头

Vim 小技巧情景一:自动写入文件头情景二:安装vundle和nerd

2021-11-23 19:19:47 3106 4

原创 并行求和算法实现

题目描述有 NNN 个处理器,现对 NNN 个数求和,要求每个处理器中都保持全和。有两个算法可以实现:蝶式求和算法:重复计算元素的求和,共需要 logNlogNlogN 步。在每个阶段,处理器都会将数据发给指定的其他处理器,然后进行求和。二叉树求和算法,累计求和,在广播给其他节点,需要 2logN2logN2logN 步蝶式算法实现首先需要假定:数据均匀地分布在每一个处理器中,特别地,每个处理器中只有一个数字。但求和必然要求所有的数据,蝶式算法就是将数据从少到多,一步一步地累加起来。编程时,可

2021-10-20 16:58:52 3627

原创 对一并行程序实验的简单理解

title: “对一并行程序实验的简单理解”excerpt: “关于MPI编程的一点技巧,以及对矩阵优化的一些简单理解”type: postsclasses:categoriescategories:MPI&OpenMPtags:MPIheader:overlay_image: “/assets/img/teaser2.jpg”写在前面使用一维数组在写并行程序时,会遇到很多针对矩阵、张量的计算,尽管它们都是以多维数组的方式组合在一起,但一般情况下,我更加倾向于使用.

2021-10-20 15:31:01 359

转载 Visual Studio 2019 安装 OpenGL

Visual Studio 2019 安装 OpenGL最近痴迷于 OpenGL,这篇文章帮了我大忙,推荐给大家。

2021-10-05 18:03:13 102

原创 RISC-V from scratch 7:内存分页

RISC-V from scratch 7:内存分页接上一篇博客,今天我们继续写 RISC-V from scratch 系列博客。原本我打算将该英文系列全部翻译成中文,但原作者貌似没有把这一系列完成就咕咕了。为了将工作继续下去,最终完成一个基于 RISC-V 的迷你小内核。我将这些实验继续做下去,并将自己的实践内容和想法写在这里,与大家分享探讨。往期回顾欢迎再次来到 RISC-V from scratch ,先快速回顾一下我们之前做过的内容,为实现时钟中断,我费了很大的力气学习了 RISC-V 机器

2021-09-28 14:56:05 1417 1

原创 RISC-V from scratch 6

RISC-V from scratch 6接上一篇博客,我今天继续写 RISC-V from scratch 系列博客。原本我打算将该英文系列全部翻译成中文,但原作者貌似没有把这一系列完成就咕咕了,因此本文的内容是我自己实践的内容,以及一些自己的想法,放在这里同大家探讨,算是狗尾续貂,弥补遗憾。简介欢迎再次来到 RISC-V from scratch ,先快速回顾一下我们之前做过的内容,我们之前已经介绍了 RISC-V 的特权架构以及几个重要的寄存器,在更久以前,我们还介绍了一些相关底层概念(例如编译

2021-09-28 14:52:21 423

原创 RISC-V from scratch 5:机器模式

RISC-V from scratch 5:机器模式接上一篇博客,我今天继续写 RISC-V from scratch 系列博客。原本我打算将该英文系列全部翻译成中文,但原作者貌似没有把这一系列完成就咕咕了,因此本文的内容是我自己实践的内容,以及一些自己的想法,放在这里同大家探讨,算是狗尾续貂,弥补遗憾。简介欢迎再次来到 RISC-V from scratch ,先快速回顾一下我们之前做过的内容,我们之前已经探索了很多与 RISC-V 及其生态相关的底层概念(例如编译、链接、原语运行时、汇编等)。具体

2021-09-28 14:45:48 1951

原创 RISC-V from scratch 4: 写 UART 驱动

RISC-V from scratch 4: 写 UART 驱动接上一篇博客,我今天继续写 RISC-V from scratch 系列博客。我原本打算将该系列全部翻译成中文,但原作者貌似没有把这一系列完成就咕咕了,因此本文的内容是我自己实践的内容,以及一些自己的想法,放在这里同大家探讨,算是狗尾续貂,弥补遗憾。简介欢迎再次来到 RISC-V from scratch ,先快速回顾一下我们之前做过的内容,我们之前已经探索了很多与 RISC-V 及其生态相关的底层概念(例如编译、链接、原语运行时、汇编等

2021-09-28 14:40:51 1529

翻译 RISC-V from scratch 3: 写 UART 驱动

RISC-V from scratch 3: 写 UART 驱动今天为大家继续翻译 RISC-V from scratch 系列博客,接着上一部分内容,我们本此的目标是实现 UART 协议的驱动程序,继续完善 RISC-V 的内核。本文译自 RISC-V from scratch 3: Writing a UART driver in nasm (1 / 3) 。由于我发现该系列的原作者貌似没有把这一系列完成就咕咕了,因此从本文开始,我将加上一些自己实践的内容,以及一些自己的想法,同大家探讨,算是狗尾续

2021-09-26 11:51:45 700

翻译 RISC-V from scratch 2

RISC-V from scratch 2今天,我们继续翻译 RISC-V from scratch 系列的第二部分,原文链接。这是该系列的 github 库。简介快速回顾,通过 RISC-V from scratch 系列课程,我们将会探索很多与 RISC-V 及其生态相关的底层概念(例如编译、链接、原语运行时、汇编等)。在第一篇博文中,我们简短的讨论一下 RISC-V 以及为什么它很重要,并搭建起 RISC-V 的工具链,最后在 RISC-V 模拟器和 SiFive’s freedom-e-sdk

2021-09-26 11:37:42 626

翻译 RISC-V from Scratch 1

RISC-V from Scratch 1译自:RISC-V from scratch 1: Introduction, toolchain setup, and hello world!最近在尝试完成一个 RISC-V 内核,在搜索资料的时不经感叹 RISC-V 的中文相关内容少且不精,而当我读完这系列英文博客后感觉受益匪浅,故将其翻译为中文,既方便接下来的研究,也方便更多朋友学习。这是系列 github 库。简介通过 RISC-V from scratch,我会给你介绍一些很多与 RISC-V

2021-09-23 19:46:25 358

原创 QEMU 上运行 RISC-V Linux 内核

QEMU 上运行 RISC-V Linux 内核最近这段时间我在研究 RISC-V 内核。作为计划的开始,首先要将它运行起来。配置过程有点复杂,在此做详细介绍。准备操作系统 Ubuntu 18.04RISC-V GNU 工具链QEMULinuxBerkeley Boot LoaderBusybear Linuxgit clone --recursive https://github.com/riscv/riscv-gnu-toolchaingit clone https://gith

2021-09-23 19:42:53 1814 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除