Refer to:
I highlight the differences.
Please follow Intel SGX to install Intel SGX (Please Make sure your local device and cloud device can support Intel SGX and FLC by hardware), and setup the DCAP server.
DCAP server allows you to do remote attestation on your hosted server, without connecting to the external Intel service.
**# Remove Python 3.6
sudo yum remove python3 python3-pip
# Install Python 3.8
sudo yum install python38 python38-pip python38-devel**
# Check Python and Pip version, ensure you are using Python 3.8
which python
pip --version
**pip install glog
# sgx-pytorch version 1.8.0 requires torchvision version 0.9.0
# <https://pypi.org/project/torchvision/>
pip install torchvision==0.9.0**
pip install astunparse numpy ninja pyyaml mkl mkl-include setuptools cmake cffi typing_extensions future six requests dataclasses setuptools_rust pycryptodome cryptography
git clone <https://github.com/intel/pytorch> -b sgx
**# I encounter network error even after setting up GitHub proxy like ghproxy.com
# Submodule is ok, but those subsubmodule with depth>1 will throw network error
# Finally, I setup Clash and fix the error. <https://github.com/juewuy/ShellClash**>
**git submodule sync && git submodule update --init --recursive**
cd enclave_ops/deployment
make
cd bin/dkeyserver
sudo ./dkeyserver
The key server starts and waits for the key request from the dkeycache deployed on the SGX node. This service has two built-in model keys as test keys, and users can update and maintain them according to actual applications.
cd enclave_ops/deployment
make
cd bin/dkeycache
sudo ./dkeycache
After key cache service is started, this service will obtain all model keys. This service get key through SGX Remote Attestation, and sends the key to PyTorch with SGX's enclave through SGX Local Attestation.
**# Set PyTorch_ROOT
PyTorch_ROOT=/opt/sgx-pytorch**
**# On Aliyun Linux, set SGXSDK_ROOT
SGXSDK_ROOT=/opt/alibaba/teesdk/intel/sgxsdk
source ${SGXSDK_ROOT}/environment**
cd ${PyTorch_ROOT}/third_party/sgx/linux-sgx
git am ../0001*
cd external/dnnl
make
sudo cp sgx_dnnl/lib/libsgx_dnnl.a ${SGXSDK_ROOT}/lib64/libsgx_dnnl2.a
sudo cp sgx_dnnl/include/* ${SGXSDK_ROOT}/include/