2个版本

0.1.3 2024年5月11日
0.1.2 2024年5月11日
0.1.1 2023年5月15日
0.1.0 2023年5月15日

#115 in 机器学习

Download history 228/week @ 2024-05-11 20/week @ 2024-05-18 1/week @ 2024-05-25

每月168次下载

MIT许可证

685KB
8K SLoC

OpenVX 1.3与Rust兼容

codecov

此仓库包含以下部分

  • openvx-sys是OpenVX的bindgen生成的Rust包装器,
  • openvx包含一个围绕syscrate的Rust包装器。

测试应用程序

以下是Canny边缘检测样本的示例输入和输出。

VX_TYPE_GRAPH: CANNY_GRAPH, 3 nodes, VX_GRAPH_STATE_COMPLETED, avg perf 0.044175636, 0 parameters, 1 refs
VX_TYPE_NODE: RGB_TO_YUV, 2 params, avg perf 0.002818527, VX_SUCCESS, 1 refs
VX_TYPE_NODE: EXTRACT_LUMA, 3 params, avg perf 0.002013746, VX_SUCCESS, 1 refs
VX_TYPE_NODE: CANNY_EDGE, 5 params, avg perf 0.039333154, VX_SUCCESS, 1 refs

请注意,由于某种原因,当前图形发布操作

vxReleaseGraph(&mut graph);

产生了以下日志消息,并带有关联的状态VX_ERROR_INVALID_REFERENCE

Failed to remove kernel[0]=org.khronos.extra.edge_trace
Failed to remove kernel[1]=org.khronos.extra.euclidean_nonmaxsuppression_harris
Failed to remove kernel[2]=org.khronos.extras.harris_score
Failed to remove kernel[3]=org.khronos.extras.laplacian3x3
Failed to remove kernel[4]=org.khronos.extras.image_to_list
Failed to remove kernel[5]=org.khronos.extra.nonmaximasuppression
Failed to remove kernel[6]=org.khronos.extra.elementwise_norm
Failed to remove kernel[7]=org.khronos.extras.scharr3x3
Failed to remove kernel[8]=org.khronos.extras.sobelMxN

为了方便,添加了OpenVX 1.3快速参考指南这里

进行中

要在Ubuntu 20.04上安装Intel OpenCL,请运行

sudo apt-get install ocl-icd-opencl-dev intel-opencl-icd

使用clinfo测试。

安装Khronos OpenVX样本实现

git clone --recursive https://github.com/KhronosGroup/OpenVX-sample-impl

我使用以下方法从9caba36构建

python Build.py \
    --os=Linux --arch=64 --conf=Release \
    --c=clang --cpp=clang \
    --conf_vision --conf_nn \
    --opencl_interop --enh_vision --ix \
    --streaming --pipelining

将提交添加为git子模块vendor/openvx-sample-impl以方便使用。

由于某些原因,使用--conf_nnef(神经网络交换格式)构建没有工作,并且指定--opencl始终针对NEON架构,因此没有工作。

要构建Rust项目,请确保OpenVX库和头文件在作用域内

export OPENVX_DIR=/path/to/OpenVX-sample-impl/install/Linux/x64/Release
export LIBRARY_PATH=$LIBRARY_PATH:$OPENVX_DIR/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OPENVX_DIR/bin

进一步阅读

依赖关系

~0–2.4MB
~37K SLoC