2个版本
0.1.3 | 2024年5月11日 |
---|---|
0.1.2 |
|
0.1.1 | 2023年5月15日 |
0.1.0 |
|
#115 in 机器学习
每月168次下载
685KB
8K SLoC
OpenVX 1.3与Rust兼容
此仓库包含以下部分
- openvx-sys是OpenVX的bindgen生成的Rust包装器,
- openvx包含一个围绕syscrate的Rust包装器。
测试应用程序
- canny-edge-detector包含OpenVX样本的Canny边缘检测器的移植。
以下是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
测试。
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