月度归档:四月 2025

3FS Usrbio 简介

3FS 是一个为 AI 训练设计的分布式文件系统,USRBIO 是其原生客户端的关键功能。研究表明,usrbio 允许用户态应用程序直接提交 I/O 请求,绕过内核和 VFS,提升性能。它使用 Iov 作为大型共享内存进行零拷贝读写,Ior 则像 Linux 的 io-uring,处理批处理 I/O 请求。USRBIO 通过零拷贝和异步 I/O 减少开销,特别适合高吞吐量场景,如 AI 数据处理。

传统的FUSE客户端与服务端的数据交互流程为:

图片源自:https://juicefs.com/zh-cn/blog/engineering/fuse-file-system-design

可以看到数据流在内核和用户态之间要反复拷贝才能传递到应用中。而3FS的USRBIO则卸载了数据流,直接通过3FS的SDK从远端拉取数据,结合RDMA等高效网络,做到了零拷贝。

图片来源:https://developer.volcengine.com/articles/7480397583173877797

总的来说,USRBIO 通过以下方式提升了 I/O 性能:

  1. 零拷贝 I/O:通过共享内存 Iov,数据无需在用户态和内核态之间拷贝,减少了内存拷贝开销。
  2. 批处理 I/O 请求:Ior 允许一次性提交多个 I/O 请求,减少系统调用次数。例如,设置 io_depth=1024 可以批处理 1024 个请求,显著降低上下文切换开销。
  3. 异步 I/O:应用程序可以继续执行其他任务,而不必等待 I/O 操作完成,提升了并发性能。
  4. 高性能网络支持:Iov 内存注册为 InfiniBand,支持 RDMA 等高性能网络传输,特别适合分布式 AI 训练场景。

这些特性使得 USRBIO 特别适合需要高吞吐量和低延迟的 AI 工作负载,例如处理 PB 级数据集的排序任务(如 GraySort 基准测试,3.66 TiB/分钟吞吐量)。

参考链接:
https://developer.volcengine.com/articles/7480397583173877797
https://zhuanlan.zhihu.com/p/30602759754
https://github.com/deepseek-ai/3FS/blob/main/docs/design_notes.md
https://github.com/deepseek-ai/3FS/blob/main/src/lib/api/UsrbIo.md

| 1 分2 分3 分4 分5 分 (5.00- 1票) Loading ... Loading ... | 归档目录:AI技术, 存储技术, 架构设计, 软件技术 | 标签: , , , , , |

NVIDIA 为 CUDA 添加原生 Python 支持:开启 GPU 计算新篇章

引言

在最近的 GTC 大会上,NVIDIA 宣布为其 CUDA 工具包引入原生 Python 支持,这一举措可能彻底改变 Python 开发者使用 GPU 计算的方式。作为全球最流行的编程语言之一,Python 在数据科学、机器学习和科学计算领域的广泛应用促使了这一更新。NVIDIA 此举不仅降低了 GPU 编程的门槛,还可能进一步推动其在全球开发者社区中的普及,尤其是在印度和巴西等发展中国家。

背景

CUDA 是 NVIDIA 推出的并行计算平台,旨在加速各种计算任务。自 2020 年以来,CUDA 的用户数量从 200 万激增至 2023 年的 400 万,显示出其在开发者中的日益重要性。与此同时,根据 GitHub Blog: Octoverse 2024 Analysis 的数据,Python 在 2024 年超越 JavaScript,成为最受欢迎的编程语言。这一趋势为 NVIDIA 提供了契机,通过整合 Python 支持来吸引更多开发者,尤其是那些习惯使用 Python 进行数据分析和 AI 开发的群体。

CUDA Python 的新功能

NVIDIA 为 CUDA Python 引入了一系列新功能,旨在提升开发效率并简化 GPU 编程:

  • 即时编译(JIT Compilation)
    JIT 编译减少了代码的依赖性,使开发者能够更轻松地管理和部署项目。通过在运行时动态编译代码,这一功能还能提升性能,减少对预编译二进制文件的需求。
  • CUDA Core
    被描述为“Python 风格的 CUDA 运行时重新设计”,CUDA Core 为 Python 开发者提供了更直观的接口来管理 GPU 资源。这对于不熟悉传统 GPU 编程的用户来说尤为友好。
  • NVMath Python
    该组件统一了主机(CPU)和设备(GPU)的库调用,简化了跨架构的代码开发。对于需要在 CPU 和 GPU 之间切换的应用程序,这大大提高了开发效率。
  • cuPyNumeric
    cuPyNumeric 是 NumPy 的 GPU 加速替代品。根据 NVIDIA Developer: cuPyNumeric Overview 的介绍,开发者只需更改 import 语句,就能将现有的 NumPy 代码迁移到 GPU 上运行。这一功能基于 Legate 框架,支持从单 CPU 系统扩展到多节点多 GPU 集群,特别适合处理大规模数据集的研究人员和数据科学家。
  • CuTile
    CuTile 是一种专注于数组级处理的新编程模型,旨在简化 GPU 计算的编码和调试工作。目前它主要为 Python 开发,未来计划扩展到 C++,以覆盖更广泛的开发者群体。

技术细节与支持库

CUDA Python 还包括一些增强功能的组件:

  • cuda.core:提供对 CUDA 运行时和核心功能的 Python 风格访问。
  • cuda.bindings:为高级用户提供对 CUDA C API 的低级 Python 绑定。
  • cuda.cooperative:支持高效的并行算法,如排序、扫描、归约和变换。
  • cuda.parallel:为 Numba CUDA 内核提供 CUB 的块级和线程级原语。

此外,nvmath-python 提供了 CPU 和 GPU 的数学库支持,进一步丰富了科学计算的生态系统。

潜在影响

这一更新有望显著降低 Python 开发者使用 GPU 的门槛,尤其是在数据科学、人工智能和科学模拟等领域。cuPyNumeric 使 NumPy 代码无需大幅修改即可扩展到 GPU 集群,这可能彻底改变研究人员处理大规模数据问题的方式。例如,计算流体力学、机器学习模型训练和高能物理等应用都将受益于更快的处理速度。对于发展中国家而言,Python 的易用性结合 CUDA 的强大性能,可能推动高性能计算资源的普及。NVIDIA 的这一战略不仅提升了开发者的生产力,还可能在全球范围内激发更多创新。

结论

NVIDIA 为 CUDA 添加原生 Python 支持是对 Python 在计算领域日益增长需求的积极回应。通过引入 JIT 编译、CUDA Core、NVMath Python、cuPyNumeric 和 CuTile 等功能,NVIDIA 不仅简化了 GPU 编程,还扩大了其潜在用户群。这一发展有望赋能新一代开发者,尤其是发展中国家的技术人才,让他们能够利用 GPU 的强大能力开发尖端应用。随着生态系统的不断完善,例如 CuTile 未来对 C++ 的支持,GPU 计算的普及性和多功能性将进一步提升。

参考资料

| 1 分2 分3 分4 分5 分 (5.00- 1票) Loading ... Loading ... | 归档目录:AI技术 | 标签: , , , |

pico.sh服务简介

服务简介
pico.sh 似乎是一个为开发者提供快速原型设计和分享项目的平台,主要通过 SSH 驱动的服务实现,无需安装额外软件。它的主要功能包括托管静态网站、运行本地 Web 服务、数据流传输、博客服务、RSS 邮件摘要和代码片段上传。

网站用途
pico.sh 的目的是帮助开发者利用 SSH 工具(如 rsync、sftp、sshfs)轻松地在网上原型设计和分享项目。它旨在简化分享过程,适合熟悉 SSH 的开发者。

主要功能
以下是 pico.sh 的核心服务:

  • pages:通过 SSH 在全球平台上托管静态网站。
  • tuns:通过 SSH 在本地主机上托管公共 Web 服务。
  • pipe:通过 SSH 的认证 *nix 管道在计算机之间传输数据。
  • prose:通过 SSH 提供博客服务。
  • rss-to-email:通过 SSH 接收 RSS 订阅的邮件摘要。
  • pastes:使用 rsync、scp、sftp 上传代码片段。

此外,平台自动处理网站和自定义域名的 TLS,并支持通过 SSH 和文本用户界面(TUI)进行管理。这可能对需要快速部署项目的开发者特别有用,尤其是那些已经熟悉 SSH 工具的用户。

pico.sh 是一个专为开发者设计的平台,旨在通过 SSH 驱动的服务简化原型设计和项目分享的过程。它利用现有的 SSH 工具(如 rsync、sftp、sshfs),无需安装额外软件,使开发者能够高效地在网上发布内容。以下是详细分析,包括网站用途和主要功能点的深入探讨。网站用途的详细分析根据对 pico.sh 主页和相关页面的分析,pico.sh 的核心使命是“通过服务帮助开发者在网上快速原型设计”,其目标是“让开发者比以往任何时候都更容易与世界分享他们的项目”。它通过 SSH 提供各种服务,强调无需额外安装软件,这对于熟悉 SSH 的开发者来说尤其方便。例如,平台支持使用 rsync、sftp 和 sshfs 等工具,开发者可以直接利用现有系统环境进行操作。此外,平台的动机似乎与“激进实验”(如 RFC-001 激进实验 所述)有关,强调创新和实验性,这可能吸引那些寻求新工具的开发者。从“入门”页面(Getting Started)的信息来看,使用 pico.sh 需要先创建账户,通过 SSH 进入 TUI 控制台,提供用户名即可完成注册,用户名会用于服务域(如 glossy.prose.sh)。这进一步确认了平台以 SSH 为中心的操作模式,适合技术熟练的开发者。主要功能点的详细分析pico.sh 提供了多种服务,每个服务都有特定的功能,下面通过表格总结其主要功能点:

服务名称 描述 操作方式 额外特性
pages 在全球平台上托管静态网站 使用 rsync、sftp、scp 上传文件 自动 TLS、自定义域名、项目分析、SPA 支持
tuns 在本地主机上托管公共 Web 服务 通过 SSH 隧道访问,如 ssh -R dev:80:localhost:8000 tuns.sh 自动 TLS、HTTPS 访问
pipe 在计算机之间通过认证的 *nix 管道传输数据 使用 SSH 管道 安全数据流传输
prose 通过 SSH 提供博客服务 使用 scp 发布文章,如 scp hello-world.md prose.sh:/ 博客管理
rss-to-email 接收 RSS 订阅的邮件摘要 使用 SSH 配置,如 scp blogs.txt feeds.pico.sh:/ 邮件通知
pastes 上传代码片段 使用 rsync、scp、sftp,如 git diff ssh pastes.sh changes.patch

这些功能通过 SSH 实现,强调了平台的轻量化设计。例如,“pages”服务不仅支持静态网站托管,还包括 Github Action、促销/回滚支持、自定义域名和重定向等高级功能(详见 pages 服务页面)。而“tuns”服务允许开发者通过 SSH 隧道将本地 Web 服务公开,适合快速测试和分享。此外,平台自动处理 TLS,确保网站的安全性,这对需要自定义域名的用户特别有用。从搜索结果和相关讨论(如 Hacker News 上的评论,pico.sh – SSH 驱动的开发者服务)来看,用户对定价(如 2 美元/月的低成本)表现出兴趣,这可能进一步降低了使用壁垒。然而,这些讨论未直接影响功能点的分析,主要用于确认平台的受欢迎程度。额外发现和上下文在分析过程中,还发现了与平台使用相关的细节。例如,“pages”服务提供免费层(25MB 存储限制),适合小型项目(详见 pages 服务页面)。此外,平台支持通过 SSH 命令管理所有服务,如缓存清除(ssh pgs.sh cache project-name)或访问控制(ssh pgs.sh acl project-x –type [type] –acl [value]),这增强了其灵活性。FAQ 页面(FAQ)提供了更多技术支持信息,如 SSH 密钥配置和登录问题解决,表明平台注重用户体验。值得注意的是,搜索结果中也出现了与 Raspberry Pi Pico 相关的条目(如 Tom’s Hardware 文章,如何设置和编程 Raspberry Pi Pico),但这些与 pico.sh 无关,可能是名称相似导致的混淆,已排除在外。综合评估pico.sh 适合需要快速部署和分享项目的开发者,尤其是那些熟悉 SSH 工具的用户。其主要优势在于轻量化、无需额外安装和强大的 SSH 集成,但可能对新手开发者稍显复杂。功能点的多样性(如静态网站托管、博客服务和代码分享)使其成为多功能平台,特别适合技术社区中的实验性项目。

关键引文

| 1 分2 分3 分4 分5 分 (5.00- 1票) Loading ... Loading ... | 归档目录:WEB网络, 移动互联, 软件应用 | 标签: , , , , |