1 分•作者: thunderbong•3 天前
返回首页
一周热榜
1 分•作者: taoji1994•3 天前
1 分•作者: mpweiher•3 天前
1 分•作者: o8vm•3 天前
1 分•作者: hansmayer•3 天前
1 分•作者: hasheddan•3 天前
1 分•作者: goloroden•3 天前
1 分•作者: optimalsolver•3 天前
1 分•作者: greenchair•3 天前
1 分•作者: Flex247A•3 天前
Hi HN,
我构建了一个 RISC-V 模拟器,它实现了 RV32IM 指令集和一个最小的系统调用接口来运行 DOOM。几周前,我用一个简单的 hello world 汇编程序得到了我的第一个输出。
从那时起,我一直在不懈地努力让 DOOM 运行起来。
我首先需要弄清楚如何运行 C 程序,并接触到了 newlib,它允许底层环境逐个实现系统调用存根,直到程序运行。
我还添加了 ELF 加载,但目前仅支持单个 `PT_LOAD` 段。
为了移植 DOOM,我使用了 doomgeneric,一旦所需的存根就位,它就非常方便地工作了。
DOOM 渲染到内存中的一个固定区域 (0x705FDD = VRAM_START):
```
0x7FFFFF +-------------------------------------+
| |
| QUEUE_SIZE (32 字节) |
| |
0x7FFFDF +-------------------------------------+ <-- QUEUE_START
0x7FFFDE | QUEUE_READ_IDX |
0x7FFFDD | QUEUE_WRITE_IDX |
+-------------------------------------+
| |
| |
| VRAM (1,024,000 字节) |
| |
| |
0x705FDD +-------------------------------------+ <-- STACK_START
| 栈 |
| | |
| v |
| |
| ^ |
| | |
| 程序数据 + 堆 |
| |
0x000000 +-------------------------------------+
```
我制作了一个小的链接器脚本,以便 C 程序的入口点位于 _start,并且虚拟地址始终为 0。这使得 ELF 加载器代码保持简单。
输入由 rvcore 写入队列,然后由在其中运行的 DOOM 拦截。
演示链接:<a href="https://www.youtube.com/watch?v=f5uygzEmdLw" rel="nofollow">https://www.youtube.com/watch?v=f5uygzEmdLw</a>
1 分•作者: goloroden•3 天前
1 分•作者: pando85•3 天前
1 分•作者: danny00•3 天前
1 分•作者: freakynit•3 天前
把它当作一个有趣的练习来学习。然而,最终的结果与商业级深度研究产品不相上下。<p>完整报告(涵盖当前状态的 80%):<p><a href="https://deep-research-agent.pagey.site" rel="nofollow">https://deep-research-agent.pagey.site</a>
1 分•作者: quatonion•3 天前
Valkyr 是一种全新的 LM 推理运行时。
它与 llama.cpp、vLLM 或 ZINC 等不同。
Valkyr 使用 Zig 语言编写,代码非常简洁,除了 Vulkan Compute 本身之外没有任何依赖项。
虽然它支持多种模型家族和 OpenAI 兼容服务器等功能,但它的一大特点是可以在现有的 Vulkan 主机内以严格的时间预算运行,例如在视频游戏、AR/VR 应用、边缘设备或机器人中。
此外,它还支持丰富的探针接口,可以近乎实时地研究语言模型的内部结构。
我并不是要取代现有的运行时,它们已经存在了。我试图做的是帮助推理与对时间敏感的应用程序协同工作。
如果您能试用一下,我将非常高兴。
如果您有任何问题或想法,请告诉我。谢谢!
1 分•作者: simonebrunozzi•3 天前
1 分•作者: bernardoortega•3 天前
1 分•作者: abdelhousni•3 天前
1 分•作者: sahil-shubham•3 天前
Bhatti 可以在任何支持 KVM 的设备上启动 Linux 虚拟机,包括树莓派 5、Hetzner AX 服务器,以及带有嵌套虚拟化的云虚拟机。
* 每个虚拟机都有自己的内核、文件系统和 IP 地址。
* 空闲的虚拟机会暂停 CPU 并将自身快照到磁盘;下次请求时,它们会在 3.7 毫秒(热启动)或 360 毫秒(冷启动,p50,Hetzner AX102)内唤醒。
* 发布任何端口 → 公共 URL,首次访问时自动唤醒。
* 将任何 OCI/Docker 镜像作为根文件系统拉取,或将正在运行的沙盒保存为一个镜像。
* 从第一天起就支持多租户——每个用户的网桥、加密密钥、速率限制。
* 单个 Go 二进制文件,Apache 2.0 许可证。
网站上“决策”页面是最有趣的阅读内容:恢复后的 vsock 状态、为什么所有快照都是完整的、systemctl shim、ARP 重传技巧。
```bash
curl -fsSL bhatti.sh/install | sudo bash
```
(需要 sudo,因为守护程序需要访问 /dev/kvm 并设置 Firecracker jailer 和一个网桥;仅 CLI 安装——管道到纯 `bash`——不需要 root 权限)
网站:[https://bhatti.sh](https://bhatti.sh)
代码仓库:[https://github.com/sahil-shubham/bhatti](https://github.com/sahil-shubham/bhatti)
决策与经验:[https://bhatti.sh/docs/under-the-hood/decisions/](https://bhatti.sh/docs/under-the-hood/decisions/)
1 分•作者: anon1253•3 天前