![]() |
1
1
最简单的方法可能是将图片分成可以并行处理的部分(4、8、16,取决于核心)。然后对每个部分运行不同的进程。 具体来说,看看OpenCL。因为它不是特定于供应商的,而且NVidia和ATI都希望支持它,所以希望它能存在更长的时间。 一般来说,由于您不需要共享太多数据,因此过程非常简单。 |
![]() |
2
1
Intel® Integrated Performance Primitives 在我工作的公司做图像分析。 线程构建块(TBB)类似于OpenMP和Cilk。它使用OpenMP进行多线程处理,只是封装在一个更简单的接口中。有了它,您不必担心要创建多少线程,只需定义任务。如果可以的话,它会分割任务,让一切都保持忙碌,并为您实现负载平衡。
使用这些方法,我们在使用IPP方法创建图像时获得了最佳结果。它所做的是填充每一行,使任何给定的缓存线完全包含在一行中。然后我们不会在图像中分割一行。这样我们就不会有两个试图写入同一缓存线的线程的错误共享。 |
![]() |
3
0
你看过英特尔(开源)的吗 Threading Building Blocks |
![]() |
4
0
|
![]() |
5
0
如果你已经在C、C++或FORTRAN中有一个工作序列代码,你应该认真考虑OpenMP。它相对于许多其他并行化库/语言/系统/任何东西的一大优势是,您可以一次并行一个循环,这意味着您可以获得有用的速度,而无需重新编写或(更糟的是)重新设计您的程序。 根据您的要求:
当然,如果你不明智,在开始时没有选择C、C++或FORTRAN,那么许多建议只会在你重新编写成一种语言之后应用。 当做
|
![]() |
Danish Bansal · 如何编辑已注释的图像(矩形边框)? 2 年前 |
![]() |
pete2213 · 从一个图像到另一个图像的梯度转移以增强边缘 2 年前 |
![]() |
Kirito · 如何将焦点设置为图像或标签?[Java Swing] 2 年前 |
![]() |
Claudio Russo · 如何输入detectron2内置模型? 2 年前 |
![]() |
Uzay Ayden · 在做这个项目时,我应该遵循哪些步骤? 2 年前 |