Intel IPP密码库 IPPCP 2018——第一部分 基础开发指南

密码 同时被 3 个专栏收录
185 篇文章 17 订阅
4 篇文章 0 订阅
166 篇文章 16 订阅

Part I. 开发指南

内容参考官方文档

《Intel® Integrated Performance Primitives Cryptography Developer Guide, Intel Integrated Performance Primitives 2018》

1. Getting Started

路径说明

  1. 默认的Intel IPP密码库安装路径<install_dir>为C:/Program files (x86)/IntelSWTools/compilers_and_libraries_2018.x.xxx/<target_os
  2. 默认的Intel IPP密码库主文件目录<ipp cryptography directory>为<install_dir>/ippcp/.

添加环境变量

  1. 环境变量(执行如下文件)
    1. <install_dir>\ipp\bin\ippvars.bat
    2. <install_dir>\ippcp\bin\ippcpvars.bat
  2. 手动添加Path
    1. <install_dir>\redist\ ia32_win\ipp
    2. <install_dir>\redist\ intel64_win\ippcp

然后分别运行

  1. <install_dir>\ippcp\tools\ia32\perfsys\ps_ippcp.exe
  2. <install_dir>\ippcp\tools\intel64\perfsys\ps_ippcp.exe

检测这两个程序是否能正常运行;正常运行则设置正确。

2. Theory of Operation

默认的接口函数是一个分派接口而已,它会根据CPU型号去分配对于的真正实现的库。根据CPU型号实现的库和函数会以该CPU标识为前缀。

比如ippsSHA256Update()是一般的接口,内含很多版本。在64-bit 应用的第二代Core处理器会调用e9_ippsSHA256Update(),在64-bit 应用的支持SSE4.2的处理器上会调用y8_ippsSHA256Update()。

表 CPU型号的前缀标识表

 

 

3. Linking Your Application

Intel IPP密码库支持四种链接方式:单线程静态库、单线程动态库、多线程静态库、多线程动态库。

  1. 单线程库已带,安装后路径为

 <ipp cryptography directory>/lib/<arch>

  1. 多线程库需单独下载,安装后路径为

 <ipp cryptography directory>/lib/<arch>/threaded

库名

单线程

多线程

静态库

ippcpmt.lib

ippcpmt.lib

动态库

ippcp.lib

ippcp.lib

4. Programming in the VS* IDE

1. VS IDE添加路径

最好把IPP的相关路径也添加进去,因为有很多需要IPP。

工具 选项 环境很解决方案 VC目录,添加对应平台的include文件和lib文件。

 

  1. include
    1. <install_dir>\ipp\include
    2. <install_dir>\ippcp\include
  2. Lib
    1. <install_dir>\ipp\lib\<arch>_win,<arch> 为ia32或者intel64
    2. <install_dir>\ippcp\lib\<arch>_win,<arch> 为ia32或者intel64
  3. bin(是否需要添加,因为环境变量已经添加)
    1. <install_dir>\redist\<arch>_win\ipp,<arch> 为ia32或intel64
    2. <install_dir>\redist\<arch>_win\ippcp,<arch> 为ia32或intel64

2. 工程添加库

项目 属性 配置属性 链接器 输入 附加依赖性,添加需要的lib文件。例如动态链接需要ippcp.lib,静态链接需要ippcpmt.lib。

 

附录A Performance Test Tool

  1. <install_dir>\ippcp\tools\ia32\perfsys\ps_ippcp.exe
  2. <install_dir>\ippcp\tools\intel64\perfsys\ps_ippcp.exe

附录B Threading and OpenMP

如果应用层已经采用多线程来调用 IPP 密码库,则底层最好使用单线程密码库。否则,应用层和底层IPP密码库都使用多线程的话,会出现Nested parallelization,从而导致效率降低。

  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

网糸隹

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值