使用百度飞桨 AI Studio 进行 PGP 靓号计算

之前在从 Yubikey 到 PGP 靓号计算这篇文章中简单介绍了如何使用 GPU 进行科学算号,后经群友提示,发现可以利用百度飞桨 AI Studio 提供的 Nvidia V100/A100 显卡来进行科学算号。估计是出于吸引用户的考虑,该平台提供了每日最多 16 小时的免费使用额度,只需要运行任意项目即可自动到账。

由于该平台无法直接安装 libgcrypt,需要手动编译安装两个计算库,之后即可正常使用,下面详细介绍一下配置的步骤。

首先前往百度飞桨 AI Studio 注册账号,可以顺手完成新手任务获得 100 算力卡。之后新建一个脚本任务。打开项目,修改默认的 run.sh 文件,可参考下面。

注意下面使用的仓库的自带脚本 generate_batch_keys.sh 中的参数很可能不是你想要的,为了调整参数,可以在项目中新建一个脚本,然后复制 generate_batch_keys.sh 后进行修改,执行时把修改后的脚本移动到仓库中覆盖即可。计算结果的保存路径必须在 /root/paddlejob/workspace/output/ 下,否则无法下载输出。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/env bash

set -e

mkdir libs

wget --no-check-certificate https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.46.tar.gz
wget --no-check-certificate https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.10.1.tar.gz

tar -zxf libgpg-error-1.46.tar.gz
tar -zxf libgcrypt-1.10.1.tar.gz

cd libgpg-error-1.46
./configure --prefix="/root/paddlejob/workspace/libs" && make && make install

cd ../libgcrypt-1.10.1
./configure --prefix="/root/paddlejob/workspace/libs" \
CFLAGS="-I/root/paddlejob/workspace/libs/include" \
LDFLAGS="-L/root/paddlejob/workspace/libs/lib" \
&& make && make install

cd ..
export LIBRARY_PATH=$LIBRARY_PATH:/root/paddlejob/workspace/libs/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/paddlejob/workspace/libs/lib

git clone https://github.com/comicchang/gpg-fingerprint-filter-gpu
cd gpg-fingerprint-filter-gpu
make
chmod +x generate_batch_keys.sh

./generate_batch_keys.sh 0 100 /root/paddlejob/workspace/output/keys

修改完成后把启动命令修改为 bash run.sh,然后提交,环境选择 V100 一卡即可,实测 ed25519 密钥的计算速度约为 8.5 G hashes/scv25519 密钥的计算速度约为 4.4 G hashes/s,比 Nvidia A5000 速度还要快一点。

提交后可以前往项目的历史任务中查看日志,为了方便在日志中查看计算结果,可以把 gpg-fingerprint-filter-gpu 程序输出重定向到 /dev/null。当你感觉时机成熟,可以手动终止任务,然后下载输出,就能看到传说中的 PGP 靓号了。祝算号成功。