【问题标题】:Parallel computation with unreal engine 4使用虚幻引擎 4 进行并行计算
【发布时间】:2016-11-28 00:42:00
【问题描述】:

我目前正在研究虚幻引擎在计算密集型项目中的可用性,而 Google 并没有提供太大帮助。

我需要在游戏循环的背景下为当前使用 OpenMP 实现的项目进行一些繁重的计算。流体模拟。

Windows 上的虚幻引擎使用 Visual Studio 编译和构建,因此应该支持 Visual Studio 编译器所具有的功能,但我不清楚您是否可以使用 OpenMP 的正确设置来编译 UE。 或者,我可以很容易地使用 Intel 的线程构建块 TBB 来完成这项工作,这显然已经在 UE 中使用了……尽管可能只有内存分配器部分?

一般来说,我想我的问题是对使用 UE 的跨平台高度并行计算有什么支持。如果您需要在所有可用内核上运行大量相同的计算,您如何在 UE 中执行此操作? 我对手动创建一些线程、在块代码上运行它们、通过加入等待完成然后继续前进不感兴趣。为了我的目的,我更喜欢parallel_for循环。

此外,我想知道在 UE“脚本”中使用 CUDA 或 OpenCL 等其他框架是多么容易。

我来自 Unity,在那里我围绕原生 dll 制作了 c# 包装器,用 c++ 编写,以获得高性能,但我有点厌倦了这种用 c# 包装原生的东西,所以我更喜欢基于 c++ 的引擎......但如果这本身限制了我可以在我的 c++ 代码中做的事情,那么它并没有太大帮助......我认为它可以工作,当我学习如何时,但我无法找到 任何关于上述任何问题的信息。任何带有“并行”一词的东西通常都会导致蓝图。

【问题讨论】:

    标签: c++ multithreading parallel-processing unreal-engine4


    【解决方案1】:

    UE 中有一个 ParallelFor(),定义在这里:“Engine\Source\Runtime\Core\Public\Async\ParallelFor.h”

    签名是void ParallelFor(int32 Num, TFunctionRef<void(int32)> Body, bool bForceSingleThread = false)

    可以在源代码中轻松找到示例用法。

    【讨论】:

    • 我看到它在引擎中使用,但是在网上搜索虚幻引擎 4 和 ParallelFor 绝对没有任何信息。这对我来说似乎很奇怪。你确定它是高性能的并且是供开发人员使用的吗?
    • @JoeTaicoon 是的,我认为它正在工作。是的,它是供开发人员使用的,我认为您可以说整个代码库是供开发人员使用的,无论其中一些没有很好的文档记录。如果您在网上找不到某些文档,请不要感到惊讶,大部分虚幻魔法不在网上,它们只是在源代码中,所以您必须仔细阅读代码。
    猜你喜欢
    • 2014-11-08
    • 2020-07-24
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 2015-01-13
    • 2015-07-03
    • 2019-12-09
    相关资源
    最近更新 更多