Taint Analysis added to type inference
For every tensor in the graph, we want to know it's 'taint'. Each tensor can have the possible taints: Client: Input to the ML model (eg: the image input). Server: The weights of the model. ClientXServer: A tensor that is dervied after operations on both client and server tensors. Secret_constant: A tensor that is a constant but declared as a secret. Public_constant: A tensor that is a constant but declared as public. The motivation behind this analysis is to insert optimized versions of multiplication. If one input is from server and the other from model we can call ElemWiseActModelVectorMult (optimized) otherwise we can insert a call to ElemWiseSecretSharedVectorMult Matmul also expects one of its inputs to have the 'Server' taint which this analysis identifies it.
Showing
- Athos/SeeDot/AST/AST.py 7 additions, 3 deletionsAthos/SeeDot/AST/AST.py
- Athos/SeeDot/AST/PrintAST.py 4 additions, 2 deletionsAthos/SeeDot/AST/PrintAST.py
- Athos/SeeDot/Codegen/EzPC.py 2 additions, 6 deletionsAthos/SeeDot/Codegen/EzPC.py
- Athos/SeeDot/Compiler.py 3 additions, 3 deletionsAthos/SeeDot/Compiler.py
- Athos/SeeDot/IR/IR.py 3 additions, 2 deletionsAthos/SeeDot/IR/IR.py
- Athos/SeeDot/IR/IRBuilderCSF.py 14 additions, 17 deletionsAthos/SeeDot/IR/IRBuilderCSF.py
- Athos/SeeDot/Type.py 148 additions, 36 deletionsAthos/SeeDot/Type.py
Loading
Please register or sign in to comment