Thread 中讨论的其他器件:BeagleY-AI
工具/软件:
您好:
我们打算使用 GPU 着色器程序来减轻处理器中的图像处理例程负载。
但是、我们观察到在提供 GPU 输入数据和检索 GPU 计算结果时、传输时间相对较高。
下面是我在第一次尝试用工作包填充渲染管道时使用的 Vulkan API 代码指令。
这是在 GPU 上提供主机端存储器(然后在 GPU 上进行处理)的标准过程
使用着色器程序:
Vulkan_device_memory< uint32_t >* interleaved_rgb_input_image;
Vulkan_device_memory< uint32_t >* interleaved_rgb_internal_image;
vk::CommandBuffer command_puffer;
vk::BufferCopy region(
0、
0、
interleaved_rgb_input_image->get_number_of_elements ()* sizeof ( uint32_t ));
//发出命令将主机端存储器传输到 GPU 可访问的存储器区域
command_buffer.copyBuffer(
Interleaved_rgb_input_image->get_buffer()、
Interleaved_RGB_INTERNAL_image->get_buffer()、
1、
区域 (&R);
//… 发出更多命令、调用着色器程序等
// 触发 GPU 上的编程命令序列
command_pBuffer.dispatch ( group_count_x、group_count_y、1 );
我不希望通用 API 调用导致使用 DMA 机制。
您能否提供一个示例、说明需要哪些命令
使用适用于 DMA 的存储器区域?
提前感谢和问候
Richard Arndt