我有几个关于 C++ 编程的问题。我想知道是否可以以异步方式(顺序代码)写入内存?但是让我清楚我的问题。我正在寻找一种算法的改进,我的代码的瓶颈似乎是在内存中写入。我想写入内存并继续计算。一个处理器可以做到这一点吗?喜欢使用 ALU 的同时使用写块吗?知道,我不会在下一次计算中使用结果。它写在矢量结果中。
感谢您花时间回复,无论是阅读。
我有几个关于 C++ 编程的问题。我想知道是否可以以异步方式(顺序代码)写入内存?但是让我清楚我的问题。我正在寻找一种算法的改进,我的代码的瓶颈似乎是在内存中写入。我想写入内存并继续计算。一个处理器可以做到这一点吗?喜欢使用 ALU 的同时使用写块吗?知道,我不会在下一次计算中使用结果。它写在矢量结果中。
感谢您花时间回复,无论是阅读。
是和不是。编译器将优化内存写入,以便您的处理器可以在写入内存块时执行操作。这是延迟隐藏的一种形式。这就是“是”的答案。
“否”部分是,不幸的是,从代码的角度来看,我们不能用单个线程来做到这一点。
输入/输出是很多很多程序的瓶颈,所以它只是你必须优化和处理的事情。
这不是 C++ 或其他什么的问题,它只是 CPU 支持的问题:如果底层硬件无法支持,C++ 无法为您提供这样的工具。
x86 指令提供没有这样的功能,但 AFAIK 较新的 PPC 版本可以。如果你想走硬件路线,你应该首先检查你当前使用的硬件:不同的 x86 CPU 的内存延迟有很大的不同。
您可以优化内存写入。