< 返回版块

gensmusic 发表于 2023-11-20 17:34

伪共享也可能发生在你身上

False sharing 指的是当多个CPU核心修改不同但紧密相邻的内存时,由于意外地共享了缓存行,从而发生的现象。作者的工作涉及批处理软件,该软件通过并行处理大量事件来提高速度。为了记录处理进度,作者使用了一个轻量级的进度跟踪器/计数器。然而,在使用多线程时,作者遇到了性能问题,导致代码变得比预期慢得多。

为了解决这个问题,作者首先采用了使用AtomicU64的计数器,并使用了ThreadLocal来避免多线程间的竞争。然而,性能仍然不理想。最终,作者发现问题出在 false sharing 上,即在ThreadLocal分配的数据中,由于分配在紧邻的内存区域,导致了大量的伪共享。通过添加填充以增加数据之间的间隔,作者成功解决了性能问题,使代码性能接近原始版本

原文链接

图片转 ASCII 转换器

该 Rust 工具将图像转换为 ASCII 艺术。它以图像文件为输入,根据指定的宽度和高度参数调整大小,然后将图像转换为 ASCII 字符.

下面是转换效果.

img

img

github地址

strolle: 一个新的渲染器

strolle 是一个具有动态全局照明支持的实时渲染器, 纯 Rust 编写.

的目标是尝试现代实时光照技术,如ReSTIR,并测试在消费者硬件上(尤其是没有专用光线追踪核心的硬件)能达到何种程度。

strolle 已集成到 Bevy 中,但也可以独立使用(通过wgpu)

img

github 地址

--

From 日报小组 BobQ, FBI小白

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页