SlabHash配置环境

Abstract

最近在跑SlabHash的代码,在配置环境的时候遇到了很多问题,特此记录一下。希望遇到相同问题的小伙伴可以参考下,谢谢!

Introduction

论文地址:A Dynamic Hash Table for the GPU | IEEE Conference Publication | IEEE Xplore

代码地址:owensgroup/SlabHash: A warp-oriented dynamic hash table for GPUs (github.com)

Run Code

整个运行代码的流程如下:

1. 在服务器上 git clone git@github.com:owensgroup/SlabHash.git
2. cd SlabHash
3. mkdir build && cd build
4. cmake ..
5. make

我是在上面某几步运行过程中遇到的困难!

Problem 1

首先我说下自己遇到的问题:

  1. 直接运行代码Run Code,会显示一些函数库没有,而且以前没有接触过CMake相关的项目,所以不知道怎么办。
  2. 代码中给出的GPU compute capability和实验室的服务器是不搭配的,所以需要自行去查看,然后去配置。
Solve 1
  1. linux中,通过命令nvidia-smi查看显卡版本:
    在这里插入图片描述

  2. 进入NVIDIA官网:[CUDA GPUs - Compute Capability | NVIDIA Developer(https://developer.nvidia.com/cuda-gpus))查看和自己的显卡相匹配的算力:
    在这里插入图片描述


  1. 查看和自己服务器相关的算力
    在这里插入图片描述

  1. CMakeLists.txt中修改代码
    在这里插入图片描述
Problem 2

ThirdParty下面的googletestrapidjson和是空文件夹,显示缺少组件!

SlabHash下的SlabHash 是空文件夹。

Solve 2

需要上述两个文件自行下载并且放到文件夹里。

同理需要把SlabHash下的SlabHash下载并放到文件夹中

//在目录SlabHash下
git clone git@github.com:Tencent/rapidjson.git
git clone git@github.com:google/googletest.git

mv googletest ThirdParty
mv rapidjson ThirdParty

git clone git@github.com:owensgroup/SlabAlloc.git

下载组件

Problem 3

问题描述:

问题3

上面说,参数数量和函数的数量不匹配!

CMake Error : set_target_properties called with incorrect number of arguments.

然后我去查看CMakeError.log,提示是:

在这里插入图片描述

显示pthread 不是Linux下默认多线程的库,所以需要手动链接?如何手动链接呢

到底是哪里出了问题?我自己一头雾水😵

Solve 3

我去了googletestgithub,其中有一条issue是:

CMake Error : set_target_properties called with incorrect number of arguments.

提问者认为可能是个Bug? 按照文中的方法:CMake Error : set_target_properties called with incorrect number of arguments. · Issue #3509 · google/googletest (github.com),我也没有解决。

在网上查询(摸鱼)两天的时间,看了好多方法,也尝试了许多方法,简单列举几条,其中有:

  1. googletest/googletest 中建立build文件夹 进行cmake .. ,我照做了还是出错…😅

  2. 加上pthread库的动态连接

    SET(LIBRARIES
    -pthread #记得加-横线
    )
    
  3. stackoverflow上的解决办法:cmake - set_target_properties called with incorrect number of arguments? - Stack Overflow

统统没用…我是废物😭真的有点崩溃,这个问题卡我的时间最长,主要是大家遇到的问题也不适用我!

最终的解决方法:

说出来有点搞笑,我baidu了下这句话的用法,是打印出gtest的版本,我的猜想是:这两段话应该可以注释掉

在这里插入图片描述

最终和我的猜想一样!解决问题!cmake 成功

在这里插入图片描述

Problem 4
error: namespace "std" has no member "shuffle"

在这里插入图片描述

Solve 4:

cmap_test.cu中加入:

std::shuffle comes from algorithm
Add
#include <algorithm>

因为 Linux 是不会自动加入一些函数库的。

Conclusion

在这里插入图片描述

大功告成!可以运行代码了:

# model 0
python3 ../bench/bencher.py -m 0 -d 0
# model 1
python3 ../bench/bencher.py -m 1 -d 0
# model 2
python3 ../bench/bencher.py -m 2 -d 0 
# model 3
python3 ../bench/bencher.py -m 3 -d 0
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值