Skip to content
/ SESDF Public

Reference implementation of our paper "Efficient GPU computation of large protein Solvent-Excluded Surface".

Notifications You must be signed in to change notification settings

PlathC/SESDF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo


Table of Contents
  1. Requirements
  2. Use as a library
  3. Running the experiments
  4. Citation
  5. References

This repository hosts the implementation of our paper "Efficient GPU computation of large protein Solvent-Excluded Surface".

It aims at providing a reference implementation of both the complete surface and exterior only computation. We also include the benchmarking code used for the generation of performance-related figures and tables of the paper.

Requirements

This project has been tested on Windows with Visual Studio 2019 and 2022 and depends on C++17, CMake, OpenGL 4.5 and CUDA (tested on CUDA 11.8). While it may work on other platform, it has not been tested for it.

Note that at least CUDA 11.8 is required for RTX40xx GPUs, and that, due to the use of deprecated functions in Contour Buildup implementation, CUDA 11 is required to run the experiments.

Finally, the memory consumption experiment relies on CUPTI which must be installed with the CUDA Toolkit. The required library is then located under the folder: NVIDIA GPU Computing Toolkit\CUDA\v11.8\extras\CUPTI\lib64.

Use as a Library

If you only intend to use the project as a library to generate the molecular surface of protein, it can directly be included to another project with:

add_subdirectory(SESDF)
target_link_libraries(<TargetName> PRIVATE sesdf)

Running the experiments

Four targets are provided and allow the generation of the data used for the following figures in the paper:

  • BCSBenchmarkCBSESDF: Computation benchmarks in Table 2.
  • BCSCirclesAnalysis: Circle ratios analysis in Figure 11.
  • BCSDetailedSESDF: Per-stage detailed GPU benchmarks in Figure 14.
  • BCSMemoryConsumption: Memory consumption queries in Table 2.

We rely on CMake for its configuration. Hence, all provided executables can be built on Windows with:

git clone --recursive https://github.com/PlathC/SESDF.git
cd SESDF
mkdir out
cmake -S . -B out -D SESDF_WITH_ANALYSIS=ON
cmake --build out --target "BCSBenchmarkCBSESDF" --config "Release"
cmake --build out --target "BCSCirclesAnalysis" --config "Release"
cmake --build out --target "BCSDetailedSESDF" --config "Release"
cmake --build out --target "BCSMemoryConsumption" --config "Release"

Experiments executables can finally be found under the folder out/bin/.

Organisation of the project

The project contains a dedicated folder for each of the presented methods. These folders contain the following files:

  • NameOfTheMethod: Main utility containing the handling of pre-allocation, building method calls and final graphics buffer access.
  • operations: Contains every building stages which can be called by the host and delimiting their scopes as well as kernels.
  • data: Main data required by kernels.
  • graphics: Output data returned by the main utility class once built.

The folder cuda contains essential API and memory handling (in memory and utils), some of the paper's equations (in circles) and general GPU utilities (in grid, setup, execution, math and memory).

Citation

If you use this code, please cite the following BibTeX:

@article{PlateauHolleville2024,
    author={Plateau—Holleville, Cyprien and Maria, Maxime and Mérillou, Stéphane and Montes, Matthieu},
    journal={IEEE Transactions on Visualization and Computer Graphics}, 
    title={Efficient GPU computation of large protein Solvent-Excluded Surface}, 
    year={2024},
    volume={},
    number={},
    pages={1-12},
    doi={10.1109/TVCG.2024.3380100}
}

References

The code used for the reference GPU Contour-Buildup is Gralka et al. Megamol's implementation and can be found at the following adress. We extracted its minimal dependencies such as part of GLOWL in the same folder. The reference implementation of Quan et al.'s paper at the basis of this work can be found at the following address.

About

Reference implementation of our paper "Efficient GPU computation of large protein Solvent-Excluded Surface".

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published