Intel AV-ICE06加速卡测试报告

Intel RSA加速卡结合Intel其QAT_Engine测试性能的提升,其支持的异步模式对性能的提升很大。

注意QAT_Engine只支持openssl1.1.0以上

1 测试环境

硬件:H61
系统:2.6.32-64bits+gcc4.4.5
openssl:公版openssl1.1.1a
加速卡:Intel AV-ICE06(C62X系列)

2 准备工作

2.1 下载驱动及相关手册

2.2 下载QAT引擎

git clone https://github.com/01org/QAT_Engine.git

2.3 下载OpenSSL-1.1.1a

2.4 确保已安装这些软件包

apt-get update
apt-get install pciutils-dev
apt-get install g++
apt-get install pkg-config
apt-get install libssl-dev

3 编译gcc4.4.7(此步可以跳过,直接修改configure中gcc版本依赖为>=4.4.5)

3.1下载源码(要求gcc>=4.4.7)

3.2 安装gmp-4.3.2

tar jxvf gmp-4.3.2.tar.bz2
cd gmp-4.3.2
mkdir build && cd build
../configure --prefix=/usr/local/gmp-4.3.2
make
make install

3.3 安装mpfr-3.1.4

tar -jzvf mpfr-3.1.4.tar.bz2
cd mpfr-3.1.4
mkdir build && cd build
../configure --prefix=/usr/local/mpfr-3.1.4 --with-gmp=/usr/local/gmp-4.3.2
make
make install

3.4 安装mpc-1.0.3

tar -zxvf mpc-1.0.3.tar.gz
mkdir build && cd build
../configure --prefix=/usr/local/mpc-1.0.3 --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-3.1.4
make
make install

3.5 安装gcc-4.4.7

tar -zxvf gcc-4.4.7.tar.gz
cd gcc-4.4.7
mkdir build && cd build
../configure --prefix=/usr/local/gcc-4.4.7 -enable-threads=posix -disable-checking -disable-multilib -enable-languages=c,c++ --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-3.1.4 --with-mpc=/usr/local/mpc-1.0.3
make
make install

4 intel加速卡驱动编译

4.1 编译驱动

mkdir QAT && cd QAT
tar -zxvf qat1.7.l.4.4.0-00023.tar.gz
./configure
make qat-driver-install

4.2 驱动编译过程碰到的问题

问题1:pci_pcie_cap函数重定义

解决方法:
删除 /home/ssl/QAT/quickassist/qat/compat/qat_compat.h第107开始的pci_pcie_cap函数

问题2:内核不存在usleep_range函数定义

解决方法:
../quickassist/qat/drivers/crypto/qat/qat_common/adf_clock.c:152
../quickassist/qat/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c:165
../quickassist/qat/drivers/crypto/qat/qat_common/adf_admin.c:166
以上3处替换为udelay函数

问题3:内核不支持使用MD5进行预计算

没有/usr/src/linux-headers-2.6.32-5-amd64-hz1000/include/crypto/md5.h文件
解决方法:
将 /home/ssl/QAT/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c 88行if内的部分注释掉,改成跟else一样。
或者直接将内核版本判断改成2.6.33,其余几个地方也是一样

4.3 拷贝整个QAT目录及驱动至产品机

  1. 将QAT整个目录拷贝至产品机
  2. 将/lib/modules/2.6.32-5-amd64-hz1000/updates/整个目录下和/lib/modules/2.6.32-5-amd64-hz1000/kernel/drivers/下的qat_api.ko和usdm_drv.ko拷贝至产品机对应目录下

4.4 intel_qat依赖uio.ko,需要从开发机中拷过去

驱动位于/lib/modules/2.6.32-5-amd64-hz1000/kernel/drivers/uio

4.5 产品机上操作,进行剩余的安装,启动加速服务

cd QAT
make adf-ctl-install
make qat-service-install

4.6 如果纯手动操作,在编译完成之后需要

  • 将动态库拷到/lib下
  • 将adf_ctl拷到$ICP_ROOT/build和/usr/sbin
  • 将配置文件拷贝/etc下
  • 将firmware文件拷到/lib/firmware
  • 将模块拷到内核源目录下,供qat_service加载
  • 启动qat_service,加载合适的模块,并且运行adf_ctl打开设备
  • 将qat_service加入启动脚本中

5 加速服务控制命令

service qat_service start
service qat_service stop //停止软件
service qat_service shutdown //停止软件并移除驱动 或者
/etc/init.d/qat_service start
/etc/init.d/qat_service stop //停止软件
/etc/init.d/qat_service shutdown //停止软件并移除驱动

6 安装sample应用(本部分不是必须)

  • 编译安装

在QAT目录下, make samples-install

  • 编译问题

6系列内核kernel_write函数是静态的,sample驱动中用到会找不到。直接注释掉即可,内核态测试才需要用到

cp /home/ssl/QAT/quickassist/lookaside/access_layer/src/sample_code/performance/compression/calgary /lib/firmware
cp /home/ssl/QAT/quickassist/lookaside/access_layer/src/sample_code/performance/compression/calgary32 /lib/firmware
cp /home/ssl/QAT/quickassist/lookaside/access_layer/src/sample_code/performance/compression/canterbury /lib/firmware
cp /home/ssl/QAT/build/cpa_sample_code /usr/local/bin/cpa_sample_code
cp /home/ssl/QAT/build/cpa_sample_code.ko /usr/local/bin/cpa_sample_code.ko
  • 测试
在用户态,启动cpa_sample_code之前,确保LD_LIBRARY_PATH设置了libqat_s.so所在的路径
在执行sample代码前,必须已加载驱动且软件已经启动。可以用一下命令确认
lsmod | grep "qa"
service qat_service status 用户态下,执行sample代码:./cpa_sample_code
内核态下,执行sample代码: insmod ./cpa_sample_code.ko

7 编译OpenSSL-1.1.1a

./config --prefix=/usr/local/ssl -Wl,-rpath,\${LIBRPATH}
make depend (if recommended by the OpenSSL\* build system)
make
make install
export OPENSSL_ENGINES=/usr/local/ssl/lib/engines-1.1

8 QAT引擎编译

8.1 编译命令

要带Upstream QAT driver并且使用USDM组件

cd /QAT_Engine
./autogen.sh
./configure \
--with-qat_dir=/home/ssl/QAT \
--with-openssl_dir=/home/ssl/openssl-OpenSSL_1_1_1a \
--with-openssl_install_dir=/usr/local/ssl \
--enable-upstream_driver \
--enable-usdm
make
make install

8.2 碰到的问题

错误1:autoconf版本不够

解决:autoconf要求2.68以上,修改/QAT_Engine/ .tools/configure.ac第4行

错误2:configdata.pm not present in the @INC path

解决:export PERL5LIB=$PERL5LIB:/home/ssl/openssl-OpenSSL_1_1_1a

错误3:gcc未知的选项-fstack-protector-strong

解决:gcc4.9开始才支持此选项,可以改成-fstack-protector-all或者-fstack-protector

8.3 引擎测试

根据实际情况选择/QAT_Engine/qat/config/c6xx下配置拷贝到/etc

重启加速驱动

./openssl engine -t -c -vvvv qat #会打出qat引擎的相关信息

9 openssl speed测试命令

  • RSA2048
  # Software 纯软
./openssl speed -elapsed rsa2048
# Synchronous 同步
./openssl speed -engine qat -elapsed rsa2048
# Asynchronous1 异步
./openssl speed -engine qat -elapsed -async_jobs 36 rsa2048
# Asynchronous2 异步
./openssl speed -engine qat -elapsed -async_jobs 72 rsa2048
  • ECDSA-P256
  # Software 纯软
./openssl speed -elapsed ecdsap256
# Synchronous 同步
./openssl speed -engine qat -elapsed ecdsap256
# Asynchronous1 异步1
./openssl speed -engine qat -elapsed -async_jobs 36 ecdsap256
# Asynchronous2 异步2
./openssl speed -engine qat -elapsed -async_jobs 72 ecdsap256
  • ECDH-P256
  # Software 纯软
./openssl speed -elapsed ecdhp256
# Synchronous 同步
./openssl speed -engine qat -elapsed ecdhp256
# Asynchronous1 异步1
./openssl speed -engine qat -elapsed -async_jobs 36 ecdpp256 # Asynchronous2 异步2
./openssl speed -engine qat -elapsed -async_jobs 72 ecdpp256

10 测试结果

Intel_AV-ICE06加速卡+QAT_Engine测试的更多相关文章

  1. 基于Kintex Ultrasacle的万兆网络光纤 PCIe加速卡416 光纤PCIe卡

    基于Kintex Ultrasacle的万兆网络光纤 PCIe加速卡 一.产品概述 本卡为企业级别板卡,可用于数据中心,安全领域数据采集处理.标准PCI Express全高板,适用于普通服务器.工作站 ...

  2. 410-基于XCVU9P+ C6678的40G光纤的加速卡

    基于XCVU9P+ C6678的40G光纤的加速卡 一.板卡概述 二.处理板技术指标 •  板卡为自定义结构,板卡大小332mmx260mm; •  FPGA采用Xilinx Virtex Ultra ...

  3. 1-基于Xilinx XCKU115的半高PCIe x8 硬件加速卡

    基于Xilinx XCKU115的半高PCIe x8 硬件加速卡 一.概述 本板卡系我公司自主研发,采用Xilinx公司的XCKU115-3-FLVF1924-E芯片作为主处理器,主要用于FPGA硬件 ...

  4. Intel® QAT加速卡之加密、哈希操作流程和示例

    Intel QAT 加密API介绍 文章主要讲述了Intel QAT 加密API接口的说明,以及多种应用场景下的使用方法. 文章目录 Intel QAT 加密API介绍 1. 概述 1.1 会话(se ...

  5. SuperEdge再添国产智能加速卡支持,为边缘智能推理再提速10倍

    作者 寒武纪AE团队,腾讯云容器中心边缘计算团队,SuperEdge 开发者 SuperEdge 支持国产智能加速卡寒武纪 MLU220 SuperEdge 对应的商业产品 TKE Edge 也一直在 ...

  6. SignalR系列续集[系列8:SignalR的性能监测与服务器的负载测试]

    目录 SignalR系列目录 前言 也是好久没写博客了,近期确实很忙,嗯..几个项目..头要炸..今天忙里偷闲.继续我们的小系列.. 先谢谢大家的支持.. 我们来聊聊SignalR的性能监测与服务器的 ...

  7. Apache Ignite之集群应用测试

    集群发现机制 在Ignite中的集群号称是无中心的,而且支持命令行启动和嵌入应用启动,所以按理说很简单.而且集群有自动发现机制感觉对于懒人开发来说太好了,抱着试一试的心态测试一下吧. 在Apache ...

  8. 测试一下StringBuffer和StringBuilder及字面常量拼接三种字符串的效率

    之前一篇里写过字符串常用类的三种方式<java中的字符串相关知识整理>,只不过这个只是分析并不知道他们之间会有多大的区别,或者所谓的StringBuffer能提升多少拼接效率呢?为此写个简 ...

  9. TechEmpower 13轮测试中的ASP.NET Core性能测试

    应用性能直接影响到托管服务的成本,因此公司在开发应用时需要格外注意应用所使用的Web框架,初创公司尤其如此.此外,糟糕的应用性能也会影响到用户体验,甚至会因此受到相关搜索引擎的降级处罚.在选择框架时, ...

随机推荐

  1. 关于手机ios和安卓和pc的点击事件的兼容

    var u = navigator.userAgent, app = navigator.appVersion; var clickEvent; var isAndroid = u.indexOf(' ...

  2. 安装mysql以及遇到的问题解决

    首先把我使用的8.0.15版本的MySQL发上来,有需要的可以下载. 链接:https://dev.mysql.com/downloads/mysql/ 安装MySQL: 第一步:将压缩包解压后,手动 ...

  3. vue2.0 + element-ui 通过vue-cli 脚手架搭建的有关网络安全的项目源代码

    这次是我进入公司的练手项目,是第一次系统学习vue,做出来的demo是比较低端的,而且不太好看,见谅见谅. 源代码下载路径:https://github.com/Pandora-ps/vue-elem ...

  4. 个人项目cpu占用图

  5. jdk的环境变量配置

    首先下载jdk,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 可以选择下载jdk的版本,按照提示一步一 ...

  6. Ubuntu19.04配置SS+pac非全局代理

    1.先安装shadowsocks-qt5 sudo apt install shadowsocks-qt5 2.因为ss是sock5代理,而shell不支持socks5代理,只支持http/https ...

  7. poj 1039

    #include <iostream> #include <algorithm> #include <cstring> #include <cstdlib&g ...

  8. 在安卓手机上安装完整kali linux系统

    俗话说,没图说个JB.好我马上上图 提醒:我在这里只是提供一个思路过程,希望可以帮到你,同时我也做一个记录,有任何问题欢迎  0.0.:I87OI94664  威信 :Z2tsYmI1MjA=  (b ...

  9. 第五章HTML

    HTML介绍 标签:有一个头,一尾 <!DOCTYPE html><html lang="en"><head> <!-- 文档的标题.编码 ...

  10. EBS WEBADI导入日记账 客户化账户组合规则校验

    近期项目需求对EBS中WEBADI导入日记账时,在加载数据时需要对账户组合额外进行客户化的校验,需要能够做到将校验结果体现在WEBADI模板的数据上,并且对每条错误数据都单独报错. 项目上的方案是调整 ...