【发布时间】:2011-07-26 07:25:01
【问题描述】:
我正在编写一个 C 程序,该程序涉及读取图像文件并仅读取图像的每个像素一次。那么我应该使用 fread() 读取文件一次并将其存储在一些动态变量(堆变量)中还是经常为每个像素使用 fread()? 图像的大小为 1000*1000 到 5000*5000。 我将在 MPI 和 CUDA 中扩展相同的程序。我将不胜感激任何其他建议。 谢谢。
【问题讨论】:
-
一次读取一个像素肯定会很慢,但如果您的计算已经非常昂贵,即使这样也可能不会引起注意。但是,这并不意味着您需要将整个文件读入内存。您可以轻松使用内存映射文件 (
mmap) 或一次只读取合理大小的块(4-16k 应该足以弥补读取的开销成本)。
标签: c image cuda file-handling