Homomorphic-Encryption

一個關於多執行緒TFHE的實現

  • June 2, 2021

最近我正在嘗試將TFHE庫用於項目(https://tfhe.github.io/tfhe/)。為了加速整個程序,我使用pthread進行多執行緒計算。但是,我發現隨著執行緒數量的增加,加密變得越來越慢。該程序只是使用bootsSymEncrypt來加密數字的每一位。當我使用2執行緒時,一位的平均加密時間約為0.04ms;數字為4時,加密時間為0.07ms;當數字為 8 時,加密時間約為 0.15ms。這對我來說真的很奇怪。我的機器是 4 核 8 執行緒,i7-9700 和 Ubuntu 20.04,有人能幫我解釋一下這個問題嗎?謝謝!

我對TFHE庫不熟悉;但是我的猜測是,它的執行時間受 DRAM 訪問(即記憶體未命中)的限制,而不是受 CPU 計算的限制(即,它嘗試訪問的記憶體大小不適合記憶體)。

如果是這種情況,那麼(與您觀察到的一致)添加更多執行緒不會加快速度;每個執行緒都會花時間等待輪到它進行 DRAM 訪問,並且擁有更多執行緒不會使 DRAM 更快。

引用自:https://crypto.stackexchange.com/questions/90353