小编Mar*_*ens的帖子

为什么我的 Intel Skylake / Kaby Lake CPU 在简单的哈希表实现中会出现神秘的 3 倍速度下降?

简而言之:

我已经实现了一个简单的(多键)哈希表,其中包含完全适合缓存行的存储桶(包含多个元素)。插入缓存行存储桶非常简单,也是主循环的关键部分。

我已经实现了三个版本,它们产生相同的结果并且行为应该相同。

然而,尽管所有版本都具有完全相同的缓存行访问模式并产生相同的哈希表数据,但我发现性能差异惊人地大到了 3 倍。

与我的 CPU (i7-7700HQ)相比,最佳实现insert_ok速度慢了大约 3 倍。一个变体 insert_bad 是一种简单的修改,它在缓存行中添加了额外的不必要的线性搜索,以找到要写入的位置(它已经知道),并且不会遭受 3 倍的减速。insert_badinsert_altinsert_ok

与其他 CPU(AMD 5950X (Zen 3)、Intel i7-11800H (Tiger Lake))相比,完全相同的可执行文件显示insert_ok速度快 1.6 倍。insert_badinsert_alt

# see https://github.com/cr-marcstevens/hashtable_mystery
$ ./test.sh
model name      : Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
==============================
CXX=g++    CXXFLAGS=-std=c++11 -O2 -march=native -falign-functions=64
tablesize: 117440512 elements: 67108864 loadfactor=0.571429
- test insert_ok : 11200ms
- test insert_bad: 3164ms
  (outcome identical to insert_ok: true)
- test insert_alt: 3366ms
  (outcome identical …
Run Code Online (Sandbox Code Playgroud)

c++ performance gcc hashtable x86-64

79
推荐指数
1
解决办法
6022
查看次数

为什么 Windows 10 21H2 下的 WSL2 中 nvidia-smi 返回“GPU 访问被操作系统阻止”

在 WSL2 上安装 CUDA

我已按照https://docs.nvidia.com/cuda/wsl-上的说明在台式机(配备 RTX3080 的 AMD 5950X 系统)和笔记本电脑(配备 i7-7700HQ 和 GTX1050 的戴尔 XPS 9560)上安装了 Windows 10 21H2用户指南/index.html

  1. 在 Windows 中安装支持 CUDA 的驱动程序
  2. 在 PowerShell 中更新 WSL2 内核:wsl --update
  3. 在 WSL2 中的 Ubuntu 20.04 中安装 CUDA 工具包(请注意,您没有在 WSL2 中安装 CUDA 驱动程序,说明明确告诉不应安装 CUDA 驱动程序。):
$ wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
$ sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.deb
$ sudo dpkg -i cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.deb
$ sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-4-local/7fa2af80.pub
$ sudo apt-get update
$ sudo apt-get -y install cuda
Run Code Online (Sandbox Code Playgroud)

错误 …

cuda gpu wsl-2

12
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×1

cuda ×1

gcc ×1

gpu ×1

hashtable ×1

performance ×1

wsl-2 ×1

x86-64 ×1