A cell magic enabling one to run HEIR pipelines in Jupyter notebooks.
Project description
HEIR Jupyter playground
This is a way to start running HEIR compiler passes in a Jupyter notebook or IPython notebook without having to build the entire HEIR project from scratch.
Uses the nightly HEIR build.
Usage
Load Jupyter:
jupyter notebook
In Jupyter:
%pip install heir_play
%load_ext heir_play
%%heir_opt --convert-if-to-select --canonicalize
func.func @secret_condition_with_non_secret_int(%inp: i16, %cond: !secret.secret<i1>) -> !secret.secret<i16> {
%0 = secret.generic ins(%inp, %cond : i16, !secret.secret<i1>) {
^bb0(%copy_inp: i16, %secret_cond: i1):
%1 = scf.if %secret_cond -> (i16) {
%2 = arith.addi %copy_inp, %copy_inp : i16
scf.yield %2 : i16
} else {
scf.yield %copy_inp : i16
}
secret.yield %1 : i16
} -> !secret.secret<i16>
return %0 : !secret.secret<i16>
}
The cell should output something similar to
Running heir-opt...
module {
func.func @secret_condition_with_non_secret_int(%arg0: i16, %arg1: !secret.secret<i1>) -> !secret.secret<i16> {
%0 = arith.addi %arg0, %arg0 : i16
%1 = secret.generic ins(%arg1 : !secret.secret<i1>) {
^bb0(%arg2: i1):
%2 = arith.select %arg2, %0, %arg0 : i16
secret.yield %2 : i16
} -> !secret.secret<i16>
return %1 : !secret.secret<i16>
}
}
Limitations
Right now, heir-opt as a standalone binary is not able to run lowerings to
boolean TFHE schemes due to an external dependency on ABC (see
#885). If you try to run any
pipeline requiring the yosys-optimizer pass, will see the following error from
ABC:
ERROR: ABC: execution of command ""external/edu_berkeley_abc/abc" -s -f /tmp/yosys-abc-iEdp1F/abc.script 2>&1" failed: return code 127.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file heir_play-0.0.4.tar.gz.
File metadata
- Download URL: heir_play-0.0.4.tar.gz
- Upload date:
- Size: 8.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e8cb229173edd5691a6a8dd137a6ae6303160107cf553b408bb77910754bd1d
|
|
| MD5 |
4c51f9d8f352df3a669d9a7d5dc89433
|
|
| BLAKE2b-256 |
fe1dca1d22cd1238706ac17b64d1da8a0d72c0ba9bec048a412a9eb4a77cadbc
|
File details
Details for the file heir_play-0.0.4-py3-none-any.whl.
File metadata
- Download URL: heir_play-0.0.4-py3-none-any.whl
- Upload date:
- Size: 15.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e017eeb75ffd37445e3ef35cd6c3dd74817cbef6c97d6329975dab637f65c3e
|
|
| MD5 |
7c8d42d0c6b24902db9816fcd304c7c4
|
|
| BLAKE2b-256 |
7000243a69a21db8a0e91dd25804a9ff270eaed5774b0ad325c2410e60f6a128
|