OpenVX节点执行独立性与测试验证
节点执行独立性
在如图2-5所示例中,客户端根据输入图像、梯度幅度和梯度相位。OpenVX并不要求并行运行,但可以由OpenVX供应商实现。

图2-5 具有一些独立节点的简单图形。
构造这种图形的代码,如下所示。
vx_context context = vxCreateContext();
vx_image images[] = {
vxCreateImage(context, 640, 480, VX_DF_IMAGE_UYVY),
vxCreateImage(context, 640, 480, VX_DF_IMAGE_S16),
vxCreateImage(context, 640, 480, VX_DF_IMAGE_U8),
};
vx_graph graph = vxCreateGraph(context);
vx_image virts[] = {
vxCreateVirtualImage(graph, 0, 0, VX_DF_IMAGE_VIRT),
vxCreateVirtualImage(graph, 0, 0, VX_DF_IMAGE_VIRT),
vxCreateVirtualImage(graph, 0, 0, VX_DF_IMAGE_VIRT),
vxCreateVirtualImage(graph, 0, 0, VX_DF_IMAGE_VIRT),
};
vxChannelExtractNode(graph, images[0], VX_CHANNEL_Y, virts[0]),
vxGaussian3x3Node(graph, virts[0], virts[1]),
vxSobel3x3Node(graph, virts[1], virts[2], virts[3]),
vxMagnitudeNode(graph, virts[2], virts[3], images[1]),
vxPhaseNode(graph, virts[2], virts[3], images[2]),
status = vxVerifyGraph(graph);
if (status == VX_SUCCESS)
{
status = vxProcessGraph(graph);
}
vxReleaseContext(&context); /* 将释放所有内容 */
测试验证
OpenVX中的图形在执行前,必须经过严格的验证过程,以满足消除运行时开销(参数检查)的设计理念,从而确保图形的安全执行。OpenVX必须检查(但不限于)这些条件,可得节点参数。
1)每个所需的参数都被提供给节点(vx_parameter_state_e)。可选参数可能不存在,因此在不存在时不进行检查。如果存在,则对其进行检查。
2)节点的每个参数都必须具有正确的方向(vx_direction_e中的值)。
3)节点的每个参数都必须是正确的对象类型(来自vx_type_e的对象范围)。
4)必须验证每个参数属性或值。在标量值时,可能需要对其进行范围检查(例如,0.5≤k≤1.0)。该实现不需要执行标量值的运行时范围检查。如果标量的值在运行时更改为超出范围,则结果是实现定义的。理由是运行时范围检查的潜在性能风险太大,无法强制执行。它仍将在图形验证时作为时间零点健全性进行检查。如果标量是另一个节点的输出参数,则必须将其初始化为合法值。在vxScaleImageNode时,输入图像大小与输出图像大小的关系,决定了缩放因子。必须在每个平台上,检查数据对象的这些值或属性的兼容性。
5)图连接性-vx_Graph必须是有向无循环图(DAG)。不允许循环或反馈。vx_delay对象被设计为显式地处理Graph执行之间的反馈。
6)虚拟数据对象的解析-虚拟数据对象从未指定格式,或维度到特定格式,或维度的任何更改,以及在处理时,可观察到的特定类型对象的相关创建,都发生在验证时。
除非参数值设置为NULL,否则,实现必须在节点创建时,检查所有节点参数的类型是否正确。还可以对非NULL参数进行额外的检查。必须允许用户在节点创建时,将参数设置为NULL,即使这些参数是必需的参数,以便创建未在图形执行中使用的示例节点,或增量创建节点。因此,对于显式设置为NULL的参数,实现在节点创建时不得生成错误。但是,在vxVerifyGraph过程中,实现必须检查所有必需的参数,是否为非NULL和正确的类型。在vxVerifyGraph过程中,也可以进行其他更复杂的检查。该实现应在vxVerifyGraph期间,提供NULL参数的特定错误报告,例如,Node<Node>的Parameter<Parameter>为NULL。
人工智能芯片与自动驾驶
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2024-01-10 SLAM技术参数与构图分析
2023-01-10 LLVM TableGen杂谈
2022-01-10 relay.build调用关系
2022-01-10 自动驾驶与汽车安全电子技术