pytorch源码解析-动态接口宏
Posted longriyao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytorch源码解析-动态接口宏相关的知识,希望对你有一定的参考价值。
动态库接口定义: gcc: 定义在动态库的显示属性: 作用对象: 函数、变量、模板以及C++类 default: 表示在动态库内可见 hidden: 表示不可见 #define EXPORT __attribute__((__visibility__("default"))) 微软: #define C10_EXPORT __declspec(dllexport) 制作dll时候用 #define C10_IMPORT __declspec(dllimport) 调用dll时候用 放到同一个api 头文件中 当编译的时候用export 调用的时候用 import 通常用法: class API Tensor {}; 常用方法: #ifdef _WIN32 #windows编译 #if defined(C10_BUILD_SHARED_LIBS) #如果定义动态库 #define C10_EXPORT __declspec(dllexport) #define C10_IMPORT __declspec(dllimport) #else #define C10_EXPORT #define C10_IMPORT #endif #else // _WIN32 #if defined(__GNUC__) #define C10_EXPORT __attribute__((__visibility__("default"))) #else // defined(__GNUC__) #define C10_EXPORT #endif // defined(__GNUC__) #define C10_IMPORT C10_EXPORT #endif // _WIN32 #ifdef BUILD_MAIN_LIB #编译的时候 这个有定义 调用的时候没有定义 #define API C10_EXPORT #else #define API C10_IMPORT #endif 真正使用的时候使用: API 便可
以上是关于pytorch源码解析-动态接口宏的主要内容,如果未能解决你的问题,请参考以下文章
[源码解析] PyTorch 分布式之弹性训练---Rendezvous 引擎
[源码解析] PyTorch 分布式 ----- DistributedDataParallel 之进程组