Ninja 和make

 

最近在弄dlib,交叉编译成安卓so库,使用android studio进行编译。发现android studio使用ninja不是makefile。真是搞了好久,cmake产生的不是makefile要改一个宏定义都不知道怎么去改,郁闷死我了。还得学ninja,好吧,真是学无止境啊

 

使用 Ninja 代替 make

https://blog.youkuaiyun.com/whatday/article/details/84579447

Ninja——小而快的构建系统

https://blog.youkuaiyun.com/m0_37194132/article/details/86579287

 

 

 

cd grpc/build/protobuf/include
cp google/   /usr/local/include/   -rf
cd  grpc/build/grpc/include
cp  grpc*    /usr/local/include/  -rf
cd 02-cbb/grpc/build/protobuf/lib
cp  *  /usr/local/lib  -rf  
cd 02-cbb/grpc/build/grpc/lib
cp  *  /usr/local/lib  -rf  

 

### Ninja与PyTorch的关系及其集成 Ninja 是一种构建系统工具,旨在提高大型项目的编译速度。它通常与其他构建工具(如 CMake)配合使用来优化项目依赖关系并减少不必要的重新编译过程[^2]。 #### 1. Ninja 的作用 Ninja 被设计用于快速处理复杂的构建流程。相比于传统的 Make 工具,Ninja 提供更高效的增量构建能力以及更好的多线程支持。这使得在开发过程中频繁修改源码时能够显著缩短等待时间。 #### 2. PyTorch 中的 Ninja 使用场景 当开发者希望扩展 PyTorch 功能或者添加自定义操作符时,可能需要编写底层实现代码并通过 C++ 或 CUDA 实现性能敏感的部分逻辑。此时可以利用 CMake Ninja 来管理这些外部模块的编译工作流。 具体来说,在创建自定义算子的过程中,可以通过以下步骤完成: - **设置环境变量**: 如果想让 CMake 使用 Ninja 进行构建,则需提前指定 `CMAKE_GENERATOR` 变量指向 Ninja。 ```bash export CMAKE_GENERATOR=Ninja ``` - **调用 cmake 命令**: 接下来按照常规方式进行配置阶段的操作即可自动切换到基于 Ninja 的生成器模式下执行后续任务。 - **实际应用案例** 下面展示了一个简单的例子说明如何加载动态链接库文件并与 Python 层交互: ```python import torch # 加载共享对象(.so/.dll)形式存在的插件组件 torch.ops.load_library("./custom_group_norm.dll") # 测试输入张量数据结构初始化 X = torch.randn(3, 2, 1, 2) num_groups = torch.tensor([2.]) scale = torch.tensor([1., 1.]) bias = torch.tensor([0., 0.]) # 执行注册后的函数名空间下的新方法调用 result = torch.ops.my_ops.custom_group_norm(X, num_groups, scale, bias, 0.) print(result) ``` 上述脚本片段展示了通过导入预先编译好的二进制目标产物后可以直接访问新增加的功能接口。 #### 3. 安装 CPU 版本 PyTorch 并验证其可用性 对于某些特定场合比如缺乏 GPU 支持或是不打算启用 ROCm 技术栈的情况之下,可以选择仅部署纯 CPU 构建版别的框架实例化方案[^3]。命令如下所示: ```bash pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu ``` 此语句会下载适配当前平台架构条件的最佳候选者组合包集合,并将其安装至本地环境中去满足进一步实验需求。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值