人类早期驯服野生英特尔VCA卡的珍贵资料 #1 启程!VCA2手册先行简要分析 - 硬件篇

众所周知(?),生活在Intel服务器中的VCA卡,是一种多节点PCIE计算扩展卡。
其家族中的佼佼者VCA2,全称VCA1585LMV,其外形酷似一张高端专业显卡,上有3个X86节点。每个节点配置了一块集成Iris Pro P580核显的E3-1585L v5处理器和一个C236芯片组,并且允许添加最大32GB的非ECC或者纯ECC的DDR4笔记本内存。整张卡上面还可安装一块M.2固态硬盘。
未被驯服的VCA卡,虽然也曾被yuuki及其万能的哥们偶然捕捉到,但是它具体如何工作、环境如何配置以及相关的一些技术细节,到目前仍然是未解之谜。
野生VCA卡由于具有良好的视频处理和桌面虚拟化性能,以及目前因未被攻略而相 对 低 廉的价格(被打),已被人类注意许久,虽然其具有一定的翻车风险与攻略难度。
不过,记录历史,我们是砖——业——的。冒着翻车的危险,我们有幸记录下了人类早期驯服野生VCA卡的珍贵资料。
哦↗,看呐,一位外国小哥(误)立志成为一名优秀的驯兽师,于是几经辗转,通过yuuki向一家商家购得一张被偶然捕捉到(又差点逃掉)的VCA2卡,但是由于国庆休假的原因暂时无法发货。工欲善其事,必先利其器,于是他先在ARK中找到了这张卡的页面,并下载和整理了一些相关资料和“驱动程序”(姑且先这么叫吧,其实不能说是传统意义上的驱动,下期会讲)。接下来的两期就有请他来根据手册给大家讲一讲VCA2的一些基本情况。
(这要是能做成视频就好了,我已经配过一遍音了,真的)
注:本期所有注明“来自产品手册”的图片,版权归英特尔公司所有。
BGM: Trip
量 子 对 撞 稽.MP4
各位滑稽果们大家好,我是……
我明明是进栈检票(摔)。
关于手册
首先Intel VCA的手册分为硬件手册和软件手册:

https://www.intel.com/content/dam/support/us/en/documents/server-products/server-accessories/VCA_Spec_HW_Users_Guide.pdf

https://www.intel.com/content/dam/support/us/en/documents/server-products/server-accessories/VCA2_HW_User_Guide.pdf

https://www.intel.com/content/dam/support/us/en/documents/server-products/server-accessories/VCA_SoftwareUserGuide.pdf
今天我们先来解读相对简单的硬件手册,带大家对VCA2的硬件情况有一个基本的了解,做到心中有数之后讲软件的时候尽量不被绕晕。需要注意的是,今天的讲解只针对部分重要的手册内容,并且顺序不是按照手册原顺序。另外手册中(篇幅最大也是最难的)关于上机功能验证的部分,我打算收到卡后结合我手上的实例来讲,作为单独的一期,同时也是收到卡后的第一期。
物理结构
先来欣赏并且熟悉一下。

另外手册中提到:一定要将各个组件安装到位(尤其是卡盖),否则会引起散热问题。
产品介绍

大家不需要全部看懂,只需要关注我高亮的部分即可(感谢老版Edge提供的高亮能力),剩下基本上是废话。
黄色:VCA2在Xeon SP或Xeon E5的host硬件环境下运行。(后面的验证部分明确提到了E5 v4是可用的,但是E5 v2和v3不确定。我目前的情况是只有E5 v2。。)
蓝色:VCA2提供的主要能力是Iris Pro核显(的桌面图形处理能力)和QSV视频编码。
绿色:VCA2的主要应用场景有直播和流媒体视频编码、提供用于办公或游戏的桌面虚拟化图形性能、其他视频形式的通信场景。
特性表

蓝色:VCA2是一张全宽、全高、2槽的PCIE扩展卡,TDP为235W。在往后几页还给出了具体的尺寸。

黄色(包括右边):VCA只能在有限种类的GNU/Linux发行版的host软件环境下运行,而且(根据下期才会讲解的软件相关信息)最推荐的host系统(应该)是CentOS 7.4。
绿色(包括右边):对于每个节点上运行的操作系统,除了同上种类的GNU/Linux发行版外,还支持Windows 10和Windows Server,以及作为KVM虚拟化host。
处理器特性表
关于E3-1585L v5这颗CPU,CV6933737已经讲解得很详尽了,唯有一点需要注意:

黄色:虽然E3-1585L v5这颗CPU本身的核显最大睿频是1150MHz,但是在VCA2中它被固件人为限制到了1000MHz。
架构框图

来自host主板的PCIEx16 Gen3(以下省略Gen3)连接到PCIE交换芯片PEX8749上,从PEX8749又引出三条PCIEx8和一条PCIEx2,其中两条PCIEx8分别连接到两个节点的CPU,一条PCIEx8经过PCIE交换芯片PEX8717后连接到剩下一个节点的CPU,一条PCIEx2连接到M.2插槽。每个节点的CPU配备最大双通道的DDR4 2133内存,并且通过DMI x4 Gen2总线连接至C236芯片组(这里我表示怀疑(但也有可能就是这样),因为VCA2的E3-1585 v5和C236芯片组都是8GT/s的DMI Gen3,VCA1的E3-1283L v4和H87芯片组(你没看错,VCA1是H87而不是C220系芯片组)才是DMI Gen2,而VCA1和VCA2的框图的这个位置却都写的是"DMI x4 Gen2",我怀疑是没有改过来)。最后每个节点的芯片组通过SPI总线连接到固件flash。
关于两个PCIE交换芯片的作用,其实PEX8749的作用很明确,倍增来自host的x16带宽,然后拆分成3x8+1x2(为什么不给M.2接口x4的的带宽?可能是另有考虑,当然也可能就是单纯的不想给)。但是这个PEX8717初看让人发懵,输入是x8,输出也是x8,要它有何用?然而我在博通官网PEX8717的产品简介文档中找到了可能的答案:

简而言之,PEX8717的作用是通过一种“非透明接口”实现节点之间的通信。
内存需求

蓝色:VCA2兼容非ECC或者纯ECC的DDR4L内存,内存运行频率为2133MHz,每插槽最大容量16GB。(DDR4默认就是1.2V的“低电压”,所以我不知道写成DDR4L有什么用,又不是LPDDR4。有路过的大佬可以在评论区解释一下。)
绿色:对于4GB内存,VCA2仅支持非ECC的。
黄色:频率高于2133MHz的内存会被降频至2133MHz正常使用。

VCA2的每个节点都有A、B两个内存插槽。

黄色:每个节点至少需要安装一条内存。
绿色:推荐每个节点安装两条内存。(原因众所周知,双通道对核显提升很大)
蓝色:内存需要按照A、B槽的顺序安装(在安装两条内存的情况下,这好像是废话);只安装一条内存时,必须安装在A槽。
对host的内存需求

黄色:以下(绿色)所指内存是指排除系统、服务和应用占用内存之外的空闲内存。
绿色:需要的内存用来加载启动映像,而且是“每个节点”“同时”的。
蓝色:内存需求计算方法。
这个暂时不需要详细了解,之后软件篇会提到。
host需要进行的固件设置

黄色是原理上需要的设置,绿色和蓝色是一个具体的实例。
和Xeon Phi计算卡类似,使用VCA2需要先在host的固件设置中打开“大于4GB的内存映射”。但是关于第二项MMIO大小的设置我没有看懂,有路过的大佬可以在评论区解释一下。
供电需求

VCA2的最大TDP是235W,所以图上的2x3和2x4供电都必须接上。(原文没有明确地说都必须接上,但是也没有像Phi卡的文档那样提到不接的后果,所以我认为都必须接)
散热与风道
我就不详细解读了,直接上整页:

1. 图1是正确的风道,图2是错误的。
2. CPU温度超过96度就会开始降频。