0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

EAGLYSAdvent Calendar 2024

Day 16

CUDAを使った準同型暗号ライブラリ phantom-fheの環境構築

Last updated at Posted at 2024-12-27

0. はじめに

本記事では準同型暗号ライブラリのphantom-fheについて

  1. 環境構築
  2. サンプルコードの実行

この2点について説明します。

1. 環境

今回はdockerのコンテナ上での環境構築を行います。

使用したコンテナイメージはnvcr.io/nvidia/cuda:12.4.0-devel-ubuntu22.04です。phantom-fheが動作するOSはLinuxのみとなっているので注意して下さい。

事前に準備しておくものは以下の通りです。

ソフトウェア名 バージョン
CUDA Toolkit 11.0以上(推奨)
CMake 3.20以上(ベンチマークを実行する場合は3.23以上)
GCC 9.0(推奨)
Python 3.7以上(pybind11で使用)

2. インストール方法

  1. まず初めにphantom-fheのリポジトリをクローンします。どのディレクトリにクローンしても問題ありませんが、今回はホームディレクトリにクローンします。
    cd
    git clone --recurse-submodules https://github.com/encryptorion-lab/phantom-fhe.git
    
    phantom-fheではサブモジュールとして管理されているものがあるのでそれも一緒にクローンします。もし--recurse-submodulesをつけ忘れた場合は以下のコマンドを実行してください。
    cd ~/phantom-fhe
    git submodule update --init --recursive
    
  2. 次にクローンしてきたリポジトリに移動してcmakeコマンドを実行します。

    ベンチマークを実行しない場合

    cd ~/phantom-fhe
    cmake -S . -B build
    cmake --build build -j$(nproc)
    # システムにインストールする場合のみ実行(管理者権限が必要)
    cmake --install build
    

    ベンチマークを実行する場合

    cd ~/phantom-fhe
    cmake -S . -B build -DPHANTOM_ENABLE_BENCH=ON
    cmake --build build -j$(nproc)
    # システムにインストールする場合のみ実行(管理者権限が必要)
    cmake --install build
    

以上でphantom-fheの環境構築は完了です。次に、サンプルコードを実行して動作確認をしていきます。

3. サンプルコードの実行

cmakeコマンドを使ってビルドしたディレクトリに移動します。

cd ~/phantom-fhe/build/bin

このディレクトリにはコンパイルされた実行ファイルが置かれています。ベンチマークも同様です。

では、試しにexample_contextを実行してみましょう。

./example_context

このファイルを実行すると、スキームの選択ができます。任意のスキームを選択して問題なく実行できればphantom-fheのインストールは成功です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?