-
Notifications
You must be signed in to change notification settings - Fork 0
/
code structure.txt
121 lines (120 loc) · 4.87 KB
/
code structure.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
.
|-- App Source code for the untrusted (application) side of the program
| |-- bin Compiled intermediate binary files
| | |-- enclave_bridge.so Compiled dynamic library for python lib
| | `-- ...
| |-- aes_stream_common.cpp
| |-- common_utils.cpp
| |-- crypto_common.cpp
| |-- enclave_bridge.cpp Bridge functions for Python interface
| |-- Enclave_u.c Generated by SGX SDK following Enclave/Enclave.edl
| |-- Enclave_u.h Generated by SGX SDK following Enclave/Enclave.edl
| |-- randpool_common.cpp
| `-- sgxaes_common.cpp
|-- conv2d_extension Conv2d extention
| |-- conv2d_backward.cpp
| `-- setup.py
|-- data Cifar10 dataset file
| |-- cifar-10-batches-py
| `-- cifar-10-python.tar.gz
|-- Enclave Source code for the trusted (enclave) side of the program
| |-- bin Compiled intermediate binary files
| | |-- Enclave.o
| | `-- ...
| |-- Enclave.config.xml
| |-- Enclave.cpp
| |-- Enclave.edl Define Ecalls
| |-- Enclave.h
| |-- Enclave.lds
| |-- Enclave_private.pem
| |-- Enclave_t.c Generated by SGX SDK following Enclave/Enclave.edl
| |-- Enclave_t.h Generated by SGX SDK following Enclave/Enclave.edl
| `-- sgxdnn.cpp Declare ecalls
|-- Include Header files for the trusted side, needed by Enclave/ and SGXDNN/
| |-- eigen Eigen library
| |-- eigen3_sgx Eigen library
| |-- aes_stream_common.hpp
| |-- sgxdnn_common.hpp
| `-- ...
|-- lib
|-- python Python files
| |-- layers Python implementation of each layer
| | |-- batch_norm_2d.py Perform BN in SGX
| | |-- relu.py Perform ReLU in SGX
| | |-- sgx_conv_base.py Perform convolution in SGX
| | |-- sgx_linear_base.py Perform linear in SGX
| | `-- ...
| |-- test Test files for each layer
| | |-- connect_c.py Test basic functionalities and interface between Enclave and App
| | |-- test_bn.py
| | |-- test_conv.py
| | |-- test_maxpool.py
| | `-- test_relu.py
| |-- utils
| |-- common_net.py
| |-- common_torch.py
| |-- enclave_interfaces.py Interface of bridge functions between the untrusted (application) side and python
| |-- sgx_net.py Build the whole network using a list of layers
| |-- tensor_loader.py Tensor manager in python
| `-- ...
|-- SGXDNN DNN part in the trusted (enclave) side
| |-- bin_sgx Compiled intermediate binary files
| | |-- layers
| | |-- aes-stream.o
| | `-- ...
| |-- layers C++ implementation for each layer in
| | |-- batchnorm.cpp
| | |-- batchnorm.hpp
| | |-- conv.cpp
| | |-- conv.hpp
| | |-- linear.cpp
| | |-- linear.hpp
| | |-- maxpool.cpp
| | `-- maxpool.hpp
| |-- aes-stream.cpp
| |-- aes-stream.hpp
| |-- chunk_manager.cpp Manage memory chunks in the enclave
| |-- chunk_manager.hpp
| |-- Crypto.cpp
| |-- Crypto.h
| |-- randpool.hpp
| |-- secret_tensor.cpp Tensor management in the enclave
| |-- secret_tensor.hpp
| |-- sgxaes_asm.S
| |-- sgxaes.cpp
| |-- sgxaes.h
| |-- sgxdnn_main.cpp Main file in the enclave
| |-- sgxdnn_main.hpp
| |-- stochastic.cpp
| |-- stochastic.hpp
| |-- utils.cpp
| |-- utils.hpp
| |-- xoshiro.cpp
| `-- xoshiro.hpp
|-- teeslice Code for TEESlice
| |-- cifar10val Trained model checkpoints on CIFAR dataset
| | |-- cifar100-resnet18
| | |-- cifar100-resnet50
| | |-- iterative-teeslice-[cifar100-resnet18]
| | `-- iterative-teeslice-[cifar100-resnet50]
| |-- scripts Scripts
| | |-- run_resnet_baseline.sh
| | `-- run_teeslice.sh
| |-- eval_sgx_teeslice.py
| |-- GUIDE.md
| |-- resnet18_enclave_cpu_time.py
| |-- resnet_cifar.py ResNet for CIFAR, input image 32x32
| |-- resnet.py ResNet implemntation from Pytorch, input image 224x224
| |-- sgx_resnet_cifar.py Put all ResNet layers in SGX
| |-- sgx_resnet_cifar_teeslice.py Put the private slices of TEESlice's ResNet in SGX and put the backbone on GPU
| |-- sgx_resnet.py Put all CIFAR ResNet layers in SGX
| |-- student_resnet_cifar.py TEESLice's ResNet with private slices
| `-- utils.py
|-- enclave.signed.so
|-- enclave.so Dynamic library of enclave code
|-- goten_app Compiled application
|-- LICENSE
|-- logfile.log
|-- Makefile Makefile to compile the C/C++ part
|-- README.md
`-- ...