-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Assert fail in Bdc_ManAlloc function #2
Comments
Dear Nan, Thanks a lot for your feedback. Indeed, the second version of the code above is the correct one. This is so because encrypted-domain variables have to be read from the standard input in your Cingulata programs. In the first version of your code, the matrix values are constant clear domain values and treated as such through the Integer8 type (which in such a case performs compile-time mixed clear domain/encrypted domain calculation simplifications in order to rightfully save non necessary FHE calculations). This will result in an circuit with a constant output which does as such never need to be run in the encrypted domain (although the resulting core dump in ABC is far from graceful and should be fixed to get a more meaningful warning or error). So in summary, if you do something like this :
All is created is a circuit which always output 8 and does never require any encrypted-domain calculations, whereas if you do something like,
Then, you create a program which takes two encrypted values and output their (encrypted) sum. As a further subtetly, a and/or b may be still be clear-domain variables but since they are read from the standard input their values will not induce any simplification or constant progagation in the resulting circuit (the “cardio” test case gives an example of handling mixed clear/crypto domain variables in Cingulata programs) – avoidable homomorphic operations will then be simplified as runtime. Hope this helps clarifying, |
Hi Renaud, Got it! Thanks very much for your time and help! Best Regards |
Hi all,
Greetings from me! I want to implement a simple matrix multiplication using Cingulata, and modify
hello.cxx
as following:Compile it and generate following core dump:
Use
gdb
to check the stack backtrace:Could you help to check this issue? Thanks very much in advance!
Update:
If I modify the code get matrix values from input, it works:
So could you explain the reason? Thanks!
Best Regards
Nan Xiao
The text was updated successfully, but these errors were encountered: