多线程就是一个处理器多个核心,但一个核心代表一个逻辑处理器
超线程就是一个处理器多个核心,但一个核心能模拟出两个"逻辑处理器"
复杂性增加:超线程技术的实现增加了处理器的复杂性,可能带来更高的功耗和发热。
如果优化够好,功耗和发热体验不明显,比如AMD 锐龙7 7840HS的封神级处理器
多线程就是一个处理器多个核心,但一个核心代表一个逻辑处理器
超线程就是一个处理器多个核心,但一个核心能模拟出两个"逻辑处理器"
复杂性增加:超线程技术的实现增加了处理器的复杂性,可能带来更高的功耗和发热。
如果优化够好,功耗和发热体验不明显,比如AMD 锐龙7 7840HS的封神级处理器
上次说的某大企业服务器翻车,就是芯片没有超线程技术去硬解应用的超线程请求,而是靠编译器编译来软解超线程请求,直接导致性能开销太大,代码突兀,卡顿,死机都会出现,也算是翻车名场面了。一些单位居然没有实际测试验证就大规模采购,造成的损失巨大。
解释一下楼上说的,没有超线程的多核心 CPU 是几个核心几个线程的多线程CPU,有超线程的多核心CPU就是一个物理核心模拟出多个(目前主要是两个,历史上出现过更多个但是效果不好)逻辑核心来增加线程数的CPU
超线程也是一种多线程技术,把这两个东西并列在一起对比是不可理喻的
动动手,动动脑子,打个字,小红书bilibili知乎,不行百度(除了贴吧)也行,哪管用 CSDN 呢?尽信 AI 不如无 AI
上次说的某大企业服务器翻车,就是芯片没有超线程技术去硬解应用的超线程请求,而是靠编译器编译来软解超线程请求,直接导致性能开销太大,代码突兀,卡顿,死机都会出现,也算是翻车名场面了。一些单位居然没有实际测试验证就大规模采购,造成的损失巨大。
解释一下楼上说的,没有超线程的多核心 CPU 是几个核心几个线程的多线程CPU,有超线程的多核心CPU就是一个物理核心模拟出多个(目前主要是两个,历史上出现过更多个但是效果不好)逻辑核心来增加线程数的CPU
超线程也是一种多线程技术,把这两个东西并列在一起对比是不可理喻的
动动手,动动脑子,打个字,小红书bilibili知乎,不行百度(除了贴吧)也行,哪管用 CSDN 呢?尽信 AI 不如无 AI
超线程也是一种多线程技术,把这两个东西并列在一起对比是不可理喻的
感觉这AI更像在对比超线程与不超线程,而不是多线程本身
而且,超线程技术是AMD最早提出的,但英特尔是将其发扬光大的
超线程也是一种多线程技术,把这两个东西并列在一起对比是不可理喻的
感觉这AI更像在对比超线程与不超线程,而不是多线程本身
而且,超线程技术是AMD最早提出的,但英特尔是将其发扬光大的
多线程和超线程都是为了解决并行任务而设定的。
服务器都是Intel的超线程芯片,那跑在芯片上的应用都会设计超线程并行计算任务,而现在信创替换的是多线程,没有芯片内部的超线程,那跑的应用需要底层代码大更换,浩大的工程。
Loongarch的LASX是256位向量,将AVX2的256位向量翻译成LASX256位向量明显简单。Neon128位向量,你看看怎么翻译?短时间能翻译好?
Neon是ARM的SIMD指令集,用来加速多媒体和信号处理任务。Neon对内存对齐有要求,比如128位数据需要16字节对齐,否则性能会下降甚至出错。所以在分配内存的时候,要确保数据对齐,需要使用特定的内存分配函数或者编译器指令,可能需要复制到对齐的内存中,这会增加内存使用和处理时间。如果对不齐,多出的代码需要另外构建代码去处理。那在ARM服务器上跑的应用需要把底层代码全部重写才有可能适配,浩瀚的工程,折腾人的玩意。
那上次新闻提到的工控机性能跑不满,只能跑一半,就是因为数据不齐导致,内生的缺陷,没有经过实地实景的测试验证就应用起来,小孩过家家一样了。
我理解的多线程应该是操作系统进程管理的一种策略,把一个任务分成多个线程来并行执行,每个线程可能运行在不同的核上,最后得到结果。超线程是把一个物理核模拟成两个逻辑核,每个逻辑核单独执行任务,对于进程而言就是两个核,类似于电脑的虚拟化技术,把一套硬件模拟成多个虚拟机。
多线程是一种软件策略,超线程是一种硬件设计。
我理解的多线程应该是操作系统进程管理的一种策略,把一个任务分成多个线程来并行执行,每个线程可能运行在不同的核上,最后得到结果。超线程是把一个物理核模拟成两个逻辑核,每个逻辑核单独执行任务,对于进程而言就是两个核,类似于电脑的虚拟化技术,把一套硬件模拟成多个虚拟机。
多线程是一种软件策略,超线程是一种硬件设计。
是的,就是这么理解的。现在是把ARM软件策略去适配服务器上应用的硬件策略,对不上号。软件策略短时间无法编译好硬件策略。现在只能把服务器上跑的应用修改,去适配ARM上的软件策略,浩大的工程,无形中也被ARM架构绑架了,很难再更换其他架构平台了,工程量实在太大了。
Popular Events
More
上次发的贴,居然成热贴,万万没想到。更没想到有同学居然分不清什么多线程和超线程,不管真分不清,还是假分不清,我找了一些资料,大家一起学习,我也多学习学习,艺多不压身。
芯片的多线程(Multithreading)和超线程(Hyper-Threading)是两种不同的技术,旨在提高处理器的并行处理能力和资源利用率。
多线程(Multithreading)
定义:
多线程是指在一个处理器核心上同时执行多个线程的技术。通过时间片轮转或硬件支持,处理器可以在多个线程之间快速切换,从而实现并行处理。
实现方式:
优点:
缺点:
超线程(Hyper-Threading)
定义:
超线程是英特尔提出的一种技术,通过在一个物理核心上模拟出多个逻辑核心,使得每个逻辑核心可以同时执行不同的线程。
实现方式:
优点:
缺点:
多线程 vs 超线程
总结
多线程通过时间片轮转或硬件支持实现并行处理,适用于提高资源利用率和简化编程模型,但存在上下文切换开销和资源竞争问题。
超线程通过硬件模拟多个逻辑核心,显著提高并行性和资源利用率,但增加了处理器的复杂性和资源竞争的可能性。
简单理解:多线程是软解,编程繁杂突兀,并行计算能力一般。超线程是硬解,高效并行计算,开发人员需学习适配。
上次说的某大企业服务器翻车,就是芯片没有超线程技术去硬解应用的超线程请求,而是靠编译器编译来软解超线程请求,直接导致性能开销太大,代码突兀,卡顿,死机都会出现,也算是翻车名场面了。一些单位居然没有实际测试验证就大规模采购,造成的损失巨大。
龙芯超线程问题难题:
功能
运用难题
写了一些东西和大家探讨,互相学习。