Skip to main content

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

heir_play-0.0.4.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

heir_play-0.0.4-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

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

Hashes for heir_play-0.0.4.tar.gz
Algorithm Hash digest
SHA256 8e8cb229173edd5691a6a8dd137a6ae6303160107cf553b408bb77910754bd1d
MD5 4c51f9d8f352df3a669d9a7d5dc89433
BLAKE2b-256 fe1dca1d22cd1238706ac17b64d1da8a0d72c0ba9bec048a412a9eb4a77cadbc

See more details on using hashes here.

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

Hashes for heir_play-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8e017eeb75ffd37445e3ef35cd6c3dd74817cbef6c97d6329975dab637f65c3e
MD5 7c8d42d0c6b24902db9816fcd304c7c4
BLAKE2b-256 7000243a69a21db8a0e91dd25804a9ff270eaed5774b0ad325c2410e60f6a128

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.4 This release

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page