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,从而导致效率降低。

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

  1. Intel IPP密码库 IPPCP 2018——第二部分 对称密码算法开发说明与示例代码

    2. Symmetric Cryptography 2.1加解密步骤 其中<Alg>指具体的密码算法,<Mode>指ECB.CBC.OFB.CFB.CTR模式. 执行步骤: 步 ...

  2. 利用Intel IPP函数库实现信号频谱计算

    Intel IPP(Intel Integrated Performance Primitives)函数库是一套跨平台的软件函数库,它为用户提供了一套高效.实用的函数集,可用于实现通信.图像.语音等多 ...

  3. 【JVM技术专题】针对于ASM库生成和修改class文件开发指南 「 入门篇」

    任何足够先进的科技,都与魔法无异 相信你对Java编译以后的class字节码无论是在文件格式以及元数据方面已经有了很多的认识和了解,接下来我们不停留在理论的基础上,动手去操作和控制class字节码,这 ...

  4. STM32F103C8T6基础开发教程(HAL库)—点亮第一颗LED灯

    STM32F103C8T6基础开发教程目录 STM32F103C8T6基础开发教程(HAL库)-开发环境配置 STM32F103C8T6基础开发教程(HAL库)-Keil添加注释的快捷键 STM32F ...

  5. STM32F103C8T6基础开发教程(HAL库)—开发环境配置

    STM32F103C8T6基础开发教程目录 STM32F103C8T6基础开发教程(HAL库)-开发环境配置 STM32F103C8T6基础开发教程(HAL库)-Keil添加注释的快捷键 STM32F ...

  6. STM32F103C8T6基础开发教程(HAL库)—LED灯1S周期闪烁

    STM32F103C8T6基础开发教程目录 STM32F103C8T6基础开发教程(HAL库)-开发环境配置 STM32F103C8T6基础开发教程(HAL库)-Keil添加注释的快捷键 STM32F ...

  7. STM32F103C8T6基础开发教程(HAL库)—Keil添加注释的快捷键

    STM32F103C8T6基础开发教程目录 STM32F103C8T6基础开发教程(HAL库)-开发环境配置 STM32F103C8T6基础开发教程(HAL库)-Keil添加注释的快捷键 STM32F ...

  8. Intel IPP库概述,合计共5000个函数

    "英特尔IPP"为开发人员提供了高质量.支持生产的低级构造块,用于图像处理.信号处理和数据处理(数据压缩/解压缩和加密)应用程序.它是针对各种Intel架构(Intel®Quark ...

  9. Qt Creator配置Intel IPP库并实现信号带通滤波

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 文章目录 前言 一.环境参数 二.添加步骤 1.安装IPP2018 2.配置环境变量 3.引入lib文件 三. 测试 输出结果 ...

  10. 关于Intel IPP的基本使用方法——参照可设置ipl库

    IPP是个好东西,里面的函数精而全,希望大家好好利用.因为IPP目前很少中文资料,我们只能靠自己摸索.下面就简单说说IPP在VC2005下的基本使用方法. 假定你的IPP是安装在"D:/In ...

最新文章

  1. 秘籍 | 机器学习数据集网址大全
  2. 用 Python 制作子弹图也这么简单,爱了~
  3. 容器化技术如何在数据中心实践
  4. Redis在Windows+linux平台下的安装配置(转)
  5. CSS 水平垂直居中
  6. github 如何设置项目的语言显示
  7. 脉冲神经元的膜电位释放方式,分为hard和soft两种
  8. 一生都学不完的计谋(经典)
  9. 小屏党失望!iPhone 13四款机型,mini版没了
  10. HDU2216:Game III(BFS)
  11. Excel翻译公式之谷歌翻译公式
  12. 银行卡四要素实名验证,你知道多少?
  13. vba 定义类_excel编程系列基础:认识VBA的编辑器VBE
  14. 如何测试蓝牙设备的延时
  15. 计算机键盘标注,电脑键盘上怎么打√和*两个符号的方法
  16. cubemx+stm32f407+双Can通信
  17. 爬虫学习笔记(十八)—— 点触验证码:超级鹰、12306自动登录
  18. H3C/华为网络设备常规命令集
  19. 如何关闭计算机自动休眠状态,电脑自动待机怎么关闭【图解】
  20. margin:0 auto是什么意思

热门文章

  1. android恶意软件流量,基于流量分析的安卓恶意软件检测
  2. sql 孩子兄弟表示法 所有子节点_数据结构,二叉树遍历,孩子兄弟表示法,算法设计题...
  3. python对写作有什么帮助_第47p,Python基础知识,写作总结
  4. 苹果系统tft选哪个服务器不卡,TFT是什么
  5. asp在线html编辑器,ASP下使用FCKeditor在线编辑器的方法
  6. Optional容器类
  7. 判断输入框是不是数字_【Excel技巧】老板说,“我只要数字!数字!”
  8. python中元组的赋值_在Python中,元组可以被赋值修改。( ) (2.0分)_学小易找答案...
  9. 天津盈克斯机器人科技_坐标天津,适合亲子游的科技馆,亮点是机器人展区
  10. ajaxSubmit 提交form 表单