SupraSeal C2 Setup

This is a step by step guide on how to enable the experimental SupraSeal C2 feature on your Lotus-Workers.

Pre-requisites

  • You need to have CUDA configured on your setup. Checkout the Cuda installation tutorial.
    • CUDA-version 11.x or higher is needed.
  • Ubuntu 20.04.4 LTS or higher.

Benchmarks

Some early benchmarks with different GPUs:

GPUSpeedupCUDA (sec)SupraSeal C2 (sec)
Quadro RTX 60004.861104227
RTX 40903.67525143
A40002.031091538
RTX 30903.88535138

Setup

  1. Checkout the latest Lotus release
  2. Build from source with the environment variable FFI_USE_CUDA_SUPRASEAL=1 exported.

You can see that it’s being enabled by checking that supraseal-c2 is being downloaded when downloading the crates:

Downloading crates ...
------
Downloaded supraseal-c2 v0.1.0 <-----
Downloaded sppark v0.1.5

Troubleshooting

If you encounter the following issue when building:

/usr/local/go/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/usr/bin/ld: cannot find -lcudart_static
/usr/bin/ld: cannot find -lcudart_static

You can fix it by running find /usr/ -name libcudart_static*:

find /usr/ -name libcudart_static*
/usr/local/cuda-11.6/targets/x86_64-linux/lib/libcudart_static.a

On most modern systems, you can fix this by updating the LIBRARY_PATH environment variable. This variable is used by the linker to find required libraries. By adding the path to the CUDA libraries, you’re helping the linker find them when building your project. Here’s how you can do it:

export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/targets/x86_64-linux/lib/

Finally, source it. And rebuild:

source ~/.bashrc

Edit this page on GitHub