intel / intel/confidential-computing.sgx.sdk

Comparison and Analysis of Program Execution Speed and Compiler Optimization within and outside SGX

Open
#148 1 comment 0 reactions 0 assignees View on GitHub
question
Dominant language
C++
Stars
2
Forks
3
PR merge metrics
No merged PRs in 30d

Description

Lately, I've been delving into SGX development. At present, I am attempting to examine the efficacy of an identical program running both inside and outside of SGX, and I am facing a few challenges.

I have two programs which vary in terms of execution speed and the enhancements brought about by compile-time optimization, occurring within and outside of SGX.

Program 1:
This program utilizes the Darknet library, a machine learning framework, to conduct simple machine learning tasks.

When the compiler optimization option is set to -O0, the time taken to complete computing tasks with SGX is 150 seconds, while the runtime without SGX is 100 seconds.
When the compiler optimization option is set to -O2, the runtime is approximately the same for both scenarios, averaging around 20 seconds.
| | Inside SGX | Outside SGX |
| ---------- | ---------- | ----------- |
| -O0 | 150s | 100s |
| -O2 | 20s | 20s |
| Acceleration | 7.5 | 5 |

Program 2:
The second program involves a custom-written logistic regression code that I'm presently working with.

| | Inside SGX | Outside SGX |
| ----------- | ---------- | ----------- |
| -O0 | 14173ms | 11988ms |
| -O2 | 3691ms | 1166ms |
| Acceleration | 3.8 | 10.3 |

I am looking for answers to the following questions:
1. What is causing such a notable discrepancy in speed between the program's execution inside and outside of SGX?
2. Is the compilation optimization strategy consistent within and outside of SGX?
3. How come, when altering the compiler optimization option from O0 to O2, the first program experiences a higher rate of acceleration inside SGX as opposed to outside, whereas the complete inverse situation occurs with the second program?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.