MNN主库

环境要求

  • Microsoft Visual Studio (2017或以上)
  • cmake(建议使用3.10或以上版本)
  • powershell
  • Ninja (构建工具,比nmake更快)

编译选项

可以修改CMakeLists.txt中的选项:

  • MNN_DEBUG

默认关闭,关闭时,不保留符号,开启优化。

  • MNN_OPENMP

默认开启,关闭后,禁用openmp多线程优化。

具体步骤

  1. 在设置中找到x64 Native Tools Command Prompt for VS 2019并单击,打开VS编译构建原生x64结构程序的虚拟环境
  2. 将设置-区域与语言-管理-非unicode程序的语言改成英语(美国),否则可能因编码问题导致编译失败
  3. 编译构建MNN
    1. cd /path/to/MNN
    2. powershell ./schema/generate.ps1
    3. mkdir build
    4. cd build
    5. cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release ..
    6. ninja

常见问题和解决方案

  1. 找不到MNN_generate.h头文件。 可能是一开始powershell未能正确执行,建议删除schema/current然后重新编译
  2. 未对脚本进行数字签名,或因为权限问题无法执行脚本 在设置里面搜索编辑组策略,或者win+R然后输入gpedit.msc。然后在左侧依次选择计算机配置-管理模板-Windows组件-Windows PowerShell, 在右侧设置面板双击“启用脚本执行”,将左上未配置或已禁用改为已启用,然后在左下执行策略里选允许所有脚本就可以了。

MNN opencl支持

环境要求

  1. 将cmake更新到3.13或以上版本
  2. (可选)下载GPU Caps Viewer,你可以通过这个工具来查看本机设备的详细信息(opencl、opengl、vulkan等)

    驱动和sdk准备

  1. cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DMNN_OPENCL=ON ..
  2. ninja

MNN vulkan支持

驱动和sdk准备

  • Vulkan SDK

下载链接:https://vulkan.lunarg.com/ ,安装完毕后,将Vulkan SDK路径加入VULKAN_SDK环境变量,以备cmake查找

  • 驱动

AMD Radeon:https://community.amd.com/community/gaming/blog/2016/02/16/radeon-gpus-are-ready-for-the-vulkan-graphics-api ,其中列举了驱动下载位置和支持列表

编译MNN vulkan库

  1. cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DMNN_VULKAN=ON ..
  2. ninja