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. 实践作业4 Web测试(小组作业分配)

    经过小组内的讨论之后,我们小组的工作分配如下: 张赛军.闫昊:阶段一,软件评测: 林俊旭:阶段二,用户调研: 张嘉焰:阶段三,得出结论: 许林龙:阶段四,分析: 王奎:阶段五,每日记录,并汇总整理小组 ...

  2. Springboot 定时任务,service层无法注入问题详细解决

    开发一个微信小程序后台,建立websocket 长连接,需要后台开启定时任务, 定时任务定时查库,相应前台 但是具体执行过程中一直在报空指针错误,最后定位到service 为空,无法调用其相关的方法导 ...

  3. L3-015 球队“食物链” (30 分)

    L3-015 球队“食物链” (30 分)   某国的足球联赛中有N支参赛球队,编号从1至N.联赛采用主客场双循环赛制,参赛球队两两之间在双方主场各赛一场. 联赛战罢,结果已经尘埃落定.此时,联赛主席 ...

  4. shell 删除颜色代码

    sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"

  5. homer进行motif分析 ChIP-seq

    http://homer.salk.edu/homer/ [怪毛匠子-整理] 使用HOMER分析CLIP-SEQ数据 24 5 2月 2013   | 程序员 Tags: 生物信息学 · 软件 HOM ...

  6. 学习笔记--python中使用多进程、多线程加速文本预处理

    一.任务描述 最近尝试自行构建skip-gram模型训练word2vec词向量表.其中有一步需要统计各词汇的出现频率,截取出现频率最高的10000个词汇进行保留,形成常用词词典.对于这个问题,我建立了 ...

  7. wordpress 暴力破解防范

    一.author页面地址 author页面地址为 http://yoursite/?author=1 ID是自增的 请求这个地址会 301 到一个url,这个url里包含了作者的用户名.虽然不算漏洞, ...

  8. 完美解决win10家庭版本系统无法远程连接问题

    版权声明:本文转载.原文: https://blog.csdn.net/rainmaple20186/article/details/80913191 近期接入同一局域网的服务器,发现在连接的时候,报 ...

  9. mysql 数据库导出与导入

    1.数据库导出 语句:mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 脚本名; 1.导出整个数据库结构和数据 mysqldump -h localhost -uroot -p ...

  10. python 三种 安装包的方法

    1.pycharm安装第三方库 然后点+搜索库安装. 注意 : 有时候点+会出现下图提示:Nothing to show,这就需要在点加号前点一下绿色圈圈的conda标志. 点+号出现下图的内容才是正 ...