快速入门
本文档以Aarch64机器和x265-4.1为例,详细说明如何使能KVCL。通过替换x265中的原生算子为KVCL实现,从而提升视频编码性能。
获取x265源码并解压。
wget https://ftp.videolan.org/pub/videolan/x265/x265_4.1.tar.gz tar -zxf x265_4.1.tar.gz cd x265_4.1应用KVCL Patch。
KVCL提供了Patch文件,用于替换x265中的原生算子。本文档提供示例Patch,可直接合入x265_4.1。该Patch通过setupKvclIntrinsicPrimitives和setupKvclAssemblyPrimitives覆盖x265_4.1算子。设置KVCL根目录路径。
以下命令中,KVCL_PATH表示KVCL代码仓的根目录,请根据实际情况修改。KVCL_PATH=/home/kvcl应用Patch。
patch -p1 < $KVCL_PATH/examples/x265_4.1-enable-kvcl.patch由于KVCL在各环境中的安装位置不同,应用Patch后,需手动修正KVCL的安装路径。
打开
source/CMakeLists.txt,搜索kvcl lib path,找到以下行:link_directories(/home/kvcl/output/lib)将其中路径修正为KVCL实际安装路径。例设KVCL根目录为
/opt/kvcl,则修改为:link_directories(/opt/kvcl/output/lib)
编译x256。
配置编译器环境变量。
本文档使用Clang作为编辑器。请根据实际安装路径调整以下环境变量。CLANG_PATH=/home/compiler/clang export PATH=$CLANG_PATH/bin:$PATH export LD_LIBRARY_PATH=$CLANG_PATH/lib:$LD_LIBRARY_PATH export CC=$CLANG_PATH/bin/clang export CXX=$CLANG_PATH/bin/clang++创建构建目录。
由于构建目录已存在,简单修改下目录名称即可。mkdir mybuild cd mybuild配置构建参数。
请根据实际情况修改以下变量:- X265_INSTALL_PATH:x265安装路径
- KVCL_INCLUDE_PATH:KVCL的编译结果目录下的include路径
X265_INSTALL_PATH=/home/x265_kvcl/install \ KVCL_INCLUDE_PATH=/home/kvcl/output/include &&\ cmake ../source \ -DCMAKE_BUILD_TYPE=Release \ -DENABLE_ASSEMBLY=ON \ -DHIGH_BIT_DEPTH=OFF \ -DCMAKE_VERBOSE_MAKEFILE=ON \ -DENABLE_CLI=ON \ -DENABLE_TESTS=ON \ -DENABLE_SHARED=ON \ -DCMAKE_C_FLAGS="-O3 -march=armv8.6-a+dotprod+i8mm+sve+sve2-I$KVCL_INCLUDE_PATH" \ -DCMAKE_CXX_FLAGS="-O3 -march=armv8.6-a+dotprod+i8mm+sve+sve2 -I$KVCL_INCLUDE_PATH" \ -DCMAKE_INSTALL_PREFIX=$X265_INSTALL_PATH \ -DENABLE_NEON=ON \ -DCMAKE_C_COMPILER=$CC \ -DCMAKE_CXX_COMPILER=$CXX \ -DENABLE_NEON_DOTPROD=ON \ -DENABLE_NEON_I8MM=ON \ -DENABLE_SVE=ON \ -DENABLE_SVE2=ON \ -DENABLE_LIBNUMA=OFF \ -DCMAKE_EXE_LINKER_FLAGS="-ldl"
编译安装。
make -j8 && make install编译完成后,x265中的对应算子被替换为KVCL实现。
运行测试。 在x265目录下运行算子测试程序TestBench。
./mybuild/TestBench预期结果:测试程序应能正常启动,并可得到KVCL算子替换的收益。