为 NCNN 添加 RenderDoc 支持

平台检测宏定义 #define PLATFORM_WINDOWS 0 #define PLATFORM_LINUX 0 #define PLATFORM_APPLE 0 #define PLATFORM_IOS 0 #define PLATFORM_ANDROID 0 查阅文档发现各个平台的 RenderDoc 库名称不同,因此需要用宏来检测各个平台,这里我定义了这几个宏,分别代表 Windows、Linux 等 #if defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER) #undef PLATFORM_WINDOWS #define PLATFORM_WINDOWS 1 #elif defined(__APPLE__) #undef PLATFORM_APPLE #define PLATFORM_APPLE 1 // 其他平台检测 Windows 的话,可以通过 __WIN32__ 或者检测是否有 MSVC 就行;Android 用 __ANDROID__; Apple 平台用 __APPLE__;剩下的识别为 Linux RenderDoc API 初始化 #define RENDERDOC_API_LATEST RENDERDOC_API_1_6_0 #define eRENDERDOC_API_Version_LATEST eRENDERDOC_API_Version_1_6_0 这里定义 LATEST 宏可以方便后续更新 RenderDoc 版本 Windows 平台...

九月 8, 2025 · 7 分钟 · 1372 字 · Me

Fedora 切换到 UKI 内核并启用安全启动

生成 UKI 镜像 这部分需要先去 BIOS 关闭安全启动!! 删除 GRUB 引导程序 sudo rm -rf /boot/efi/* sudo dnf remove grub2\* --setopt=protected_packages= 配置 kernel-install 这里为 UKI 镜像所在文件夹,可以根据需要自行修改 sudo mkdir -p /boot/efi/EFI/Linux 这里也可以使用 ukify sudo vim /etc/kernel/install.conf layout=uki uki_generator=dracut 由于默认生成的 efi 文件包含随机字符,不利于 Direct Boot,这里需要固定 efi 文件名称 sudo cp /usr/lib/kernel/install.d/90-uki-copy.install /etc/kernel/install.d/ sudo vim /etc/kernel/install.d/90-uki-copy.install 这里添加了 UKI_FALLBACK_FILE, 留一份原来的内核备用 #!/usr/bin/sh # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- # ex: ts=8 sw=4 sts=4 et filetype=sh # SPDX-License-Identifier: LGPL-2....

五月 29, 2025 · 3 分钟 · 621 字 · Me

在milkv duo s开发版上运行ncnn并测试

编译安装ncnn 克隆ncnn仓库 我的系统是fedora 40 mkdir ncnn cd ncnn git clone https://github.com/Tencent/ncnn.git git submodule update --init 设置交叉工具链 cd .. wget https://sophon-file.sophon.cn/sophon-prod-s3/drive/23/03/07/16/host-tools.tar.gz mkdir riscv-milkv tar -zxvf host-tools.gz -C riscv-milkv/ export RISCV_ROOT_PATH=$(pwd)/riscv-milkv/host-tools/gcc/riscv64-linux-x86_64 设置cmake cd ncnn mkdir build-milkv/ cd build-milkv cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/c906-v240.toolchain.cmake -DCMAKE_BUILD_TYPE=release -DNCNN_BUILD_TESTS=ON -DNCNN_OPENMP=OFF -DNCNN_THREADS=OFF -DNCNN_RUNTIME_CPU=OFF -DNCNN_RVV=ON -DNCNN_SIMPLEOCV=ON -DNCNN_BUILD_EXAMPLES=ON .. 设置完cmake就可以编译ncnn了 编译ncnn make -j$(nproc) 将benchncnn和param文件传送到milkv duo s开发版 开发版上是linux系统,这里我使用scp传送,将my_ip和/path/to/替换成自己的 make install scp duan@my_ip:/path/to/ncnn/build-milkv/benchncnn . scp duan@my_ip:/path/to/ncnn/benchmark/*.param . 跑分测试 milkv duo s的SG2000有一个ARM核(1 x Cortex-A53@1GHz)和一个RISCV核(1 x C906@1GHz + 1 x C906@700MHz),有点难为这块开发板了x...

七月 3, 2024 · 1 分钟 · 87 字 · Me

在骁龙765G平台上运行ncnn并测试

编译安装ncnn 克隆ncnn仓库 我的系统是fedora 40 mkdir ncnn cd ncnn git clone https://github.com/Tencent/ncnn.git git submodule update --init 设置Android NDK cd .. wget https://dl.google.com/android/repository/android-ndk-r26d-linux.zip mkdir android-ndk unzip android-ndk-r26d-linux.zip -d android-ndk/ export ANDROID_NDK=$(pwd)/android-ndk/android-ndk-r26d 可选:去除debug标志 vim $ANDROID_NDK/build/cmake/android-legacy.toolchain.cmak 去掉这里的-g参数即可 list(APPEND ANDROID_COMPILER_FLAGS -g -DANDROID 设置cmake 如果你的cmake版本大于等于3.21,ndk版本为r23或更高,可添加-DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False选项以启用优化 mkdir -p build-android cd build-android cmake -DCMAKE_TOOLCHAIN_FILE="$ANDROID_NDK/build/cmake/android.toolchain.cmake"\ -DANDROID_ABI="arm64-v8a" \ -DANDROID_PLATFORM=android-21 -DNCNN_VULKAN=ON \ -DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False .. 设置完cmake就可以编译ncnn了 编译ncnn make -j$(nproc) make install 测试ncnn 将文件传送到手机 这里我使用Pixel 4a 5g手机进行测试 adb push build-android/benchmark/benchncnn /data/local/tmp/ adb push ....

七月 2, 2024 · 1 分钟 · 93 字 · Me

在RK3588平台上运行ncnn并测试

编译安装ncnn 克隆ncnn仓库 我的系统是fedora 40 mkdir ncnn cd ncnn git clone https://github.com/Tencent/ncnn.git git submodule update --init 设置交叉工具链 cd .. wget https://mirrors.tuna.tsinghua.edu.cn/armbian-releases/_toolchain/gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu.tar.xz mkdir aarch64-orangepi tar -xvf gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu.tar.xz -C aarch64-orangepi/ export PATH=$(pwd)/aarch64-orangepi/gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu/bin:$PATH 设置cmake cd ncnn mkdir build-orangepi/ cd build-orangepi 改一下编译器名称 vim ../toolchains/aarch64-linux-gnu.toolchain.cmake set(CMAKE_C_COMPILER "aarch64-none-linux-gnu-gcc") set(CMAKE_CXX_COMPILER "aarch64-none-linux-gnu-g++") 设置cmake cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/aarch64-linux-gnu.toolchain.cmake -DNCNN_BUILD_TESTS=ON .. 设置完cmake就可以编译ncnn了 编译ncnn make -j8 将文件传送到OrangePi 5 Plus开发版 开发版上是linux系统,这里我使用rsync传送,将my_ip和/path/to/替换成自己的 make install scp duan@my_ip:/path/to/ncnn/build-orangepi/benchmark/benchncnn . scp duan@my_ip:/path/to/ncnn/benchmark/*.param . 测试ncnn 单元测试 将build-orangepi、examples和tests目录、run_test.cmake文件上传至开发板 mkdir ncnn cd ncnn rsync -a -v duan@my_ip:/path/to/ncnn/build-orangepi ....

六月 30, 2024 · 1 分钟 · 174 字 · Me