- 主题:多线程如何确保不同线程访问不同通道的内存
你好像没搞清楚通道是干啥的
【 在 telangpujing 的大作中提到: 】
: 提高访问效率啊,做到正真的并行,不然一直两个线程抢用一个通道?
:
--
FROM 61.242.129.*
【 在 telangpujing 的大作中提到: 】
: 提高访问效率啊,做到正真的并行,不然一直两个线程抢用一个通道?
:
你搞错概念了, 双通道不是这个意思。
双通道本身就是并行。
两个通道的内存, 本身就是交叉编址的,
这样, 物理连续的内存读写, 本身就会自动分布在两个内存上面,并行访问,也就提高了速度。
这个和硬盘做RAID上差不多(抛开raid的数据冗余存储)。
--
FROM 115.171.154.*
正解。多线程打不满内存带宽,也可能是变量共享,或者类似false sharing导致cache层一致性开销过大
【 在 poggy 的大作中提到: 】
: 你搞错概念了, 双通道不是这个意思。
: 双通道本身就是并行。
: 两个通道的内存, 本身就是交叉编址的,
: 这样, 物理连续的内存读写, 本身就会自动分布在两个内存上面,并行访问,也就提高了速度。
: 这个和硬盘做RAID上差不多(抛开raid的数据冗余存储)。
: --
发自「今日水木 on V2303A」
--
FROM 223.104.77.*
哦,说的有道理。但是查了一下最近的cpu/主板是不是多通道默认工作在Unganged Mode,每个通道单独寻址,多核同时访问不同通道的内存?
【 在 poggy 的大作中提到: 】
:
: 你搞错概念了, 双通道不是这个意思。
: 双通道本身就是并行。
: ...................
--
修改:telangpujing FROM 120.6.2.*
FROM 60.7.229.*
你读一下Linux内核的mm模块,就知道这是根本不可能实现的,或者说要强行实现后为此付出的性能开销是收益的一万倍以上。
【 在 telangpujing 的大作中提到: 】
--
FROM 123.167.45.*