- 博客(22)
- 资源 (4)
- 收藏
- 关注
原创 TVM python中relay.build流程
在用TVM优化过程中,常见demo如下图:relay.build背后的调用机制梳理如下:python中的build函数实现如下,此方法实际调用了BuildModule类的build方法, BuildModule获取的C++函数build方法,此处涉及混合编程: _build_module._BuildModule() 来自于这句注册: tvm._ffi._init_api("relay.build_module", __name__) self.mod
2020-08-31 16:50:36
1260
原创 TVM函数注册机制
以tvm.graph_runtime.create为例宏展开#define TVM_REGISTER_GLOBAL(OpName) TVM_STR_CONCAT(TVM_FUNC_REG_VAR_DEF, __COUNTER__) = ::tvm::runtime::Registry::Register(OpName) 扩展到: TVM_STR_CONCAT(TVM_FUNC_REG_VAR_DEF, __COUNTER__) = ::tvm::runtime::Registry::Re
2020-08-31 16:28:46
988
原创 tvm中使用python调用C++函数流程
1 通过导入模块初始化 1) 在tvm的package的__init__.py中,有下面几个和初始化相关的模块导入: from ._ffi.runtime_ctypes import TypeCode from ._ffi.function import Function from ._ffi.base import TVMError, __version__ from .api import * 2) 导入tvm相关链接库2 在tvm/_ffi/runtime_ctypes..
2020-08-31 16:17:32
1128
原创 TVM 混合编程之调试手段
操作记录1 开启C++日志 export DMLC_LOG_DEBUG=1 export DMLC_LOG_STACK_TRACE_DEPTH=62 开启debug i. Config.cmake 中,修改选项, 106:set(USE_GRAPH_RUNTIME_DEBUG ON) 195:set(USE_RELAY_DEBUG ON) ii. Cmake 命令:cmake -D CMAKE_BUILD_TYPE=DEBUG ..3 python中开启日志记录: i
2020-08-31 16:14:44
1653
5
原创 代码角度理解SGX的认证机制(四):SGX密钥相关
英特尔SGX认证涵盖了在安全区中运行的软件的身份(例如MRENCLAVE和MRSIGNER),不可测量的状态(例如安全区模式(例如,调试与生产),安全区要与其自身关联的其他数据( (例如,描述软件配置的清单),以及与平台TCB的密码绑定。 该信息被捆绑到称为报告的数据结构中。 利害关系方检查报告中包含的属性,以决定飞地的可信度。 密钥导出图示(具体素材请看:SGX Key Properties) Root Provisioning Key(RPK):由iKGF生成的key,intel和SG..
2020-07-08 11:51:08
3727
1
原创 代码角度理解SGX的认证机制(三):远程认证
SGX 远程证明 和EPID证明协议不同,SGX不允许信任各方充当EPID验证的角色。而是由intel提供一个全球在线验证机构叫做intel 认证服务 (IAS)。 EPID认证协议涉及两个intel控制的服务,和两个独立单元。两个intel控制的服务为一个QE和一个IAS,充当认证提供者和验证者。两个独立单元中,ISV认证enclave充当认证提供者,证明服务充当认证者。 The Quoting Enclave:提供远程认证的一个架构enclave,佳作Quotes。它被平台的attestat.
2020-07-08 11:32:42
4951
原创 代码角度理解SGX的认证机制(二):配置
平台配置 配置过程是指SGX设备向intel证明其权威性以及其CPU SVN和其他系统组件属性的过程,以获取反映其SGX真实性和TCB版本的Attestation key。该过程在平台初始化阶段完成,在attestation key丢失或者TCB 恢复的时候才会重新配置。TCB 恢复是因为发布更新以补救某些系统组件(例如固件,BIOS或体系结构安全区漏洞)的关键安全问题。 attestation key :是SGX 系统的核心,信赖方将有效的认证签名作为英特尔签名的证书来信任,以保证平台的真实...
2020-07-08 11:31:00
2126
2
原创 代码角度理解SGX的认证机制(一):本地认证
一、基本概念1、认证(attestation): 是指一个enlave中的程序向其他enclave证明其完整性和真实性的过程。intel SGX认证即是一个在SGX平台上运行的ISV enclave(证明者)希望来向远程enclave(验证者)证明其身份(MRENCLAVE)、和确实是在真实的SGX处理器上正确的隔离执行。 1)本地认证:同一个平台上的两个不同enclave之间认证 2)远程认证:enclave所属平台外的软件验证其真实性2、MRENCLAVE 和 MRSIG...
2020-07-08 11:23:11
5138
原创 笔试题
在C语言中,要求运算数必须是整型的运算符是( D )A:/B:++C:!=D:%若希望当A的值为奇数时,表达式的值为"真",A的值为偶数时,表达式的值为"假"。则以下不能满足要求的表达式为( C )A:A%2 == 1B:! (A%2==0)C:! (A%2)D:A%2以下程序的运行结果是( B )。int main( void ){int m = 5;if (...
2019-06-18 16:52:24
523
原创 OpenSSL 堆栈操作及其安全堆栈实现
读openssl的源码一直可以看到DEFINE_STACK_OF这个宏,它被定义在safestack.h这个头文件中。openssl的堆栈实现共涉及到三个文件,stack.h、stack.c 和safestack.h;其中stack.h、stack.c 实现了stack_st结构体,及对该结构体对象进行操作的一系列以OPENSSL_sk开头的函数,主要有:堆栈拷贝(OPENSSL_sk_dup)、...
2018-10-21 23:25:55
1838
原创 一道google笔试题
题目:有四个线程1、2、3、4。线程1的功能就是输出1,线程2的功能就是输出2,以此类推.........现在有四个文件ABCD。初始都为空。现要让四个文件呈如下格式:A:1 2 3 4 1 2....B:2 3 4 1 2 3....C:3 4 1 2 3 4....D:4 1 2 3 4 1....三种锁策略耗时不同,第二种最快,循环两百万次耗时在五十多秒(win10+VC201...
2018-10-02 02:22:48
225
原创 百度语音识别api QT window下 调试应用
使用百度提供的C++sdk调试语音识别1. 安装工具有perl(安装openssl),QT(编写QT界面程序),VS2017(用于编译openssl,QT使用其编译器),curl(百度语音sdk需要此库的服务), jsoncpp2. openssl安装见我的另一篇文章 VS2017+OpenSSL_1_1_0-stable VC-WIN64A编译安装 Ubuntu16.04编译安装,链接...
2018-09-08 05:21:40
1888
2
转载 加密解密,数字摘要、数字签名、数字证书等概念形象解释
一、加密算法 加密算法,简而言之就是一种能够把原始内容加密,然后再解密获得原始内容的算法。加密算法可以划分为如下两类:1.对称加密 对称加密可以理解为加密与解密都使用同一套算法(即密钥)。 上图是一个经典对称加密算法。采用字母移位的办法对原始字符串进行转换,解密时再根据之前的移位,转换为原始字符串。可以根据此种算法,设计一个密码机,输入移位n,自动进行编码与解码。...
2018-08-11 22:22:43
1587
原创 VS2017+OpenSSL_1_1_0-stable VC-WIN64A编译安装 Ubuntu16.04编译安装
1 window安装 1)安装perl, http://strawberryperl.com. 2)新建openssl库文件的存放目录 3)打开VS2017 X64的控制台, 4)执行VS2017环境配置脚本,否则编译会报缺少nmake.或者ml64的错误 X64环境执行vcvars64.bat,X32环境执行vcvars32.bat, ...
2018-08-04 19:40:47
1957
转载 QT绘图系统
一、QT绘图原理 Qt4中的2D绘图系统称为Arthur绘图系统,可以使用相同的API在屏幕上和绘图设备上进行绘制,主要基于QPainter、QPainterDevice和 QPainterEngine。QPainter执行绘图操作,QPainterDevice提供绘图设备,是一个二维空间的抽象,QPainterEngine提供一些接口。QPainter用来执行具体的绘图相关操作
2017-11-20 11:35:48
740
转载 QT开发 Model/View/delegate/selection
一、Model/View框架简介1、Model/View框架核心思想 Model/View框架的核心思想是模型(数据)与视图(显示)相分离,模型对外提供标准接口存取数据,不关心数据如何显示,视图自定义数据的显示方式,不关心数据如何组织存储。 Model/View框架中数据与显示的分离,可以允许使用不同界面显示同一数据,也能够在不改变数据的情况下添加新的显示界面。
2017-11-20 10:46:06
771
转载 QML与Qt C++ 交互机制探讨与总结
介绍QML和 C++对象可以通过,signals,slots和 属性修改进行交互。对于一个C++对象,任何数据都可以通过Qt的 Meta-Object System暴露给QML(何总方法,后面介绍),同时,任何的QML对象数据通过Meta-object system在C++端直接访问。在实际的项目中很多地方会用到QML与Qt C++交互。在这里总结了若干方法供大家参考,欢迎大家指导和拍
2017-11-15 11:22:21
311
转载 linux SVN命令
(如果是第一次提交文件,很可能会出现“svn:'.'不是工作副本”,即当前目录不是工作副本,这个时候需要用到import:eg:svn import . url)1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co2、往版本
2017-11-14 09:02:59
464
原创 Cannot run compiler ‘cl‘. Maybe you forgot to setup the environment?
配置环境:Windows10家庭版64 Qt 5.9.1 Prebult组件msvc2017 64位, Visual Studio 2017社区版。问题现象:QT语言更新翻译时 lupdate.exe报错:Cannot run compiler 'cl'. Maybe you forgot to setup the environment? 项目编译,调试,运行没有问题解决...
2017-10-15 17:53:03
14416
6
转载 事件过滤器
按下tab键事件处理 正常情况下,被QWidget看成是去移动 键盘焦点,但少数窗口部件需要自行解释。 让我们试着设想已经有了一个CustomerInfoDialog的小部件。CustomerInfoDialog 包含一系列QLineEdit. 现在,我们想用空格键来代替Tab,使焦点在这些QLineEdit间切换。 一个解决的方法是子类化QLineEdit,重新实现keyPressEvent(
2017-09-29 10:01:56
266
原创 QT TCP 读数据的几种方式
1、QTcpSocket 继承于QAbstractSocket继承于QIODevice 2、QTcpSocket 提供的几种接收和发送数据方法write ( const char *, qint64 ) : qint64write ( const char * ) : qint64write ( const QByteArray & ) : qint64wri
2017-09-28 09:12:58
5235
initel SGX Software Controlled 开启工具
2022-01-27
百度语音识别api QT window下 调试应用
2018-09-08
oracle异常处理归纳.docx
2017-09-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人