[转帖]AMD处理器ZEN一代之国产化海光
https://huataihuang.gitbook.io/cloud-atlas-draft/os/linux/kernel/cpu/amd_hygon
- 2016年中科海光(国天津海光先进技术投资有限公司(THATIC))向AMD购买了x86 和 SoC IP 技术授权
美国政府为英特尔、AMD 等公司生产的处理器进行了价值标定,一旦其算力(FLOPS)和功耗的比值过高就会被认为是「性能过强」而被限制出口。2015 年,AMD 就已向美国国防部、商务部等机构进行了申请,并获得了向中国提供技术转让的许可。2019 年,美国商务部将海光加入了实体清单,这意味着 AMD 难以继续向合资企业授予任何其他 IP 许可。
cat /proc/cpuinfo 看到 128 HT (32x2x2)。- CPU缓存
- L1缓存
- 64KB四路 L1指令缓存
- 32KB八路 L1数据缓存
- L2缓存
- 512KB八路 L2缓存
- L3缓存
- 8MB十六路 L3缓存
- 加密
- 海光CPU 被去除 了 AMD原始的Zen一代处理器使用AMD虚拟化功能(SEV)的安全加密:RSA, ECDSA, ECDH, SHA 和 AES
- 海光Dhyana处理器SEV被改成使用 SM2, SM3 和 SM4 算法(国密算法)
SM2是椭圆曲线公钥密码算法,相比于RSA更先进、更节能、更安全,国家密码管理局2010年12月17日发布。
SM3是哈希算法,属于密码散列函数标准,用于数字签名及验证、消息认证码生成及验证、随机数生成等,原理、安全性和效率都类似SHA-256,国家密码管理局2010年12月17日发布。
SM4是分组密码算法,用于数据加密,分组和秘钥长度都是128位,类似AES-128,国家密码管理局2012年3月21日发布。
- 海光获得架构的整数性能基本没变,但是浮点性能损失很大:
- DIV、SQRT等浮点指令直接消失
- 大量的MMX/SSE简单指令则被降速
/dev/urandom 性能较低,原因是RDSEED(用于生成随机数算法的种子生成)真随机数发生器产生种子速度不够强或质量还不足,小概率被撞上了产生了延迟。后期二代产品真随机数发生器由1个增加到3个,同时被撞上的概率接近0,就不存在这样的问题了。参见 中科海光CPU的首次评测:基于AMD架构,覆盖桌面服务器端 提到了Hygon Dhyana(桌面版本)RDSEED比 Hygon Dhyna Plus(服务器版本)要慢10倍。不过海光RDRAND算法比原先AMD Zen版本快
/dev/urandam 设备性能:RDSEED 性能相关,有一定概率会导致操作系统加密相关应用异常(例如sshd服务)。可以考虑在BIOS设置 CBS-Moksha Common Options > RDSEED and RDRAND Control 配置成 disable (默认是 auto) ,这样操作系统会调用软随机数发生器来规避这个问题。- 海光CPU在AMD Zen 1基础上做了大量修改,例如加密功能做了替换。但是整体性能比同代原版CPU略差:
- 整数性能基本相同,浮点性能显著下降(普通指令吞吐量只有原先1/2)
- 随机数生成机制已经修改,加密引擎被替换
- 不能对常见对AES指令加速(不支持AVX和AVX2功能),但是增加了国蜜要求指令 SM2, SM3 和SM$
- 海光CPU基于AMD Zen1定制,由于合作协议只限于Zen 1而不是大获成功的Zen 2,所以技术上有诸多不足:例如Zen 2支持L3缓存PQoS(对标Intel RDT技术)就无法获得,这在数据中性混布计算中有非常大的局限性
- Linux从 Kernel 4.10才开始支持Zen架构,所以要能够正常工作,一定要选择 Kernel 4.10 以后版本,建议参考主流发行版本 CentOS 8以及 Ubuntu 20.04 LTS内核版本
- 中国两大X86 CPU:海光和兆芯 - 有关国产化X86服务器的背景信息(海光和AMD合作)
- Winichip资料: Zen - Microarchitectures - AMD - 如果要详细研究Zen架构,这个技术文档是很好的起点,汇总了大量架构信息
[转帖]AMD处理器ZEN一代之国产化海光的更多相关文章
- [转帖]AMD:Zen 2霄龙处理器每美元性能可达英特尔至强5.6倍
AMD:Zen 2霄龙处理器每美元性能可达英特尔至强5.6倍 2019-10-20 6:35:38来源:IT之家作者:孤城责编:孤城评论:32 https://www.ithome.com/0/451 ...
- [转帖]AMD Zen霄龙中国版:海光x86拿下加解密全球第一
AMD Zen霄龙中国版:海光x86拿下加解密全球第一 http://www.eetop.cn/cpu_soc/6946203.html 其实技术发展都是先模仿 剽窃 再自我创新的 要加以鼓励 总比 ...
- Intel SP处理机以及AMD处理器的一些对比资料
1. EPYC 与 intel的CPU对比 2. Intel SP处理器参数: 3. AMD处理器参数 4. Intel SP处理器部分参数2 5. Intel SP处理器简单说明 6. intel ...
- [转帖]AIDA64 6.10版发布:全面支持中国兆芯、海光x86 CPU
AIDA64 6.10版发布:全面支持中国兆芯.海光x86 CPU https://www.cnbeta.com/articles/soft/892877.htm 支持国产x86了 作为硬件识别工具领 ...
- [转帖]AMD、英特尔为何争相走向胶水多核处理器?真相在此
AMD.英特尔为何争相走向胶水多核处理器?真相在此 胶水多核到底好不好?这个事不是简单一句话能说明的,今天的超能课堂里我们就来聊聊MCM胶水多核技术的过去及未来. 作者:孟宪瑞来源:超能网|2018- ...
- [转帖]AMD第三代锐龙处理器首发评测:i9已无力招架
AMD第三代锐龙处理器首发评测:i9已无力招架 Intel 从之前的 CCX 到了 CCD 增加了缓存 改善了 ccx 之间的延迟. https://baijiahao.baidu.com/s?id= ...
- 【转帖】处理器史话 | 服务器CPU市场的战役, AMD、Intel和ARM的厮杀
处理器史话 | 服务器CPU市场的战役, AMD.Intel和ARM的厮杀 https://www.eefocus.com/mcu-dsp/377300 说完了个性鲜明的消费类电子,接下来聊一聊通 ...
- 【转帖】处理器史话 | 这张漫画告诉你,为什么双核CPU能打败四核CPU?
处理器史话 | 这张漫画告诉你,为什么双核CPU能打败四核CPU? https://www.eefocus.com/mcu-dsp/371324 2016-10-28 10:28 作者:付丽华预计 9 ...
- [转帖]AMD三代锐龙线程撕裂者命名曝光:24核心3960X
AMD三代锐龙线程撕裂者命名曝光:24核心3960X https://www.cnbeta.com/articles/tech/900271.htm 一直搞不懂TDP啥意思 可能会高于TDP的功率.. ...
- [转帖]AMD霄龙安全加密虚拟化曝漏洞:已修复
AMD霄龙安全加密虚拟化曝漏洞:已修复 https://www.cnbeta.com/articles/tech/862611.htm 硬件的安全问题 今年初,Google的一位研究人员发现,AMD ...
随机推荐
- 开心自走棋:使用 Laf 云开发支撑数百万玩家
先介绍一下开心自走棋 开心自走棋是一款剑与魔法的烧脑自走棋游戏.以著名的魔幻世界观为蓝本,采用了轻松可爱的画面风格,精致细腻的动画和特效来还原魔兽之战. 现在市面上自走棋游戏多是 PvP 玩法为主,而 ...
- java中的数据库连接池
常见的连接池的优缺点: HikariCP 优点: 性能出色,尤其在高并发负载下表现良好 内存消耗低,占用系统资源较少 具有自动化的连接池维护和统计功能 缺点: 需要 JDK7 或以上版本支持 配置选项 ...
- SaaS 营销怎么做?几点思考
按大部分 SaaS 公司组织架构,梳理了这 4 大业务部门(产品.市场.销售.服务-客户成功)的职责和客户价值链条.如图: 根据客户价值体验地图,分为两块过程: 客户营销过程 客户成功过程 针对 Sa ...
- Java 创建/编辑/删除Excel迷你图表
迷你图是Excel工作表单元格中表示数据的微型图表.使用迷你图可以非常直观的显示数据变化趋势,突出最大值.最小值,放在数据表格中可起到很好的数据分析效果.本文将通过Java代码示例介绍如何在Excel ...
- 神经网络入门篇:详解为什么需要非线性激活函数?(why need a nonlinear activation function?)
为什么需要非线性激活函数? 为什么神经网络需要非线性激活函数?事实证明:要让的神经网络能够计算出有趣的函数,必须使用非线性激活函数,证明如下: 这是神经网络正向传播的方程,现在去掉函数\(g\),然后 ...
- 火山引擎DataLeap如何解决SLA治理难题(三): 平台架构与未来展望
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 平台架构总结 火山引擎 DataLeap SLA平台整体主要分为基础组件.规划式治理服务.响应式治理服务三大块,系 ...
- Solon Web 开发,三、打包与运行
Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...
- C# 跳过值班时间代码逻辑
/// <summary> /// 当前时间是否是值班时间 /// </summary> private bool IsDutyTime { get { var dutyTim ...
- 设置MySQL 创建数据库,默认为UTF-8
Windows 安装 MySQL 5.7 x64 位 MySQL 8.0及以上默认为utf8,所以不需要设置 mysql> show variables like 'character_%' m ...
- Go--变量的声明
Go语言是静态类型语言,因此变量(variable)是有明确类型的,编译器也会检查变量类型的正确性. 变量是一段或多段用来存储数据的内存,在go中,变量一旦被定义,一定要使用,不然会报错 内建变量类型 ...