我发现了这个流行的大约 9 岁的SO 问题,并决定仔细检查其结果。
所以,我有 AMD Ryzen 9 5950X、clang++ 10 和 Linux,我从问题中复制粘贴了代码,这是我得到的:
排序 - 0.549702s:
~/d/so_sorting_faster$ cat main.cpp | grep "std::sort" && clang++ -O3 main.cpp && ./a.out
std::sort(data, data + arraySize);
0.549702
sum = 314931600000
Run Code Online (Sandbox Code Playgroud)
未分类 - 0.546554s:
~/d/so_sorting_faster $ cat main.cpp | grep "std::sort" && clang++ -O3 main.cpp && ./a.out
// std::sort(data, data + arraySize);
0.546554
sum = 314931600000
Run Code Online (Sandbox Code Playgroud)
我很确定 unsorted 版本比 3ms 快的事实只是噪音,但它似乎不再慢了。
那么,CPU 的架构发生了什么变化(使其不再慢一个数量级)?
以下是多次运行的结果:
Unsorted: 0.543557 0.551147 0.541722 0.555599
Sorted: …Run Code Online (Sandbox Code Playgroud) 让我们举个例子(我花了几个小时才让它工作):
qemu-system-x86_64 ... \
-kernel $HOME/devel/vmlinuz-5.11.0-22-generic \
-drive ... \
-append 'earlyprintk=hvc0 console=hvc0 root=/dev/sda rw' \ (0)
-device virtio-serial-pci,id=virtio-serial0 \ (1)
-chardev stdio,id=charconsole0 \ (2)
-device virtconsole,chardev=charconsole0,id=console0 (3)
Run Code Online (Sandbox Code Playgroud)
这些选项有什么作用?我的理解是
charconsole0应该用作另一端,这实际上是 qemu 的 stdio。
virtconsole?virtconsole和virtserialport或 和有什么不一样virtio-serial-pci?virtio-serial-pci?virtconsole来宾中的设备将使用该名称进行标识hvc0(以便我可以在 (0) 中指定它)?似乎,在 QtCreator 中没有打开Bazel(用于构建张量流应用程序的构建系统)项目的“标准/官方”方式,但是有人找到了任何解决方法吗?
bazel ×1
c++ ×1
clang ×1
infiniband ×1
kvm ×1
performance ×1
qemu ×1
qt-creator ×1
tensorflow ×1