Trying Numpy code without changes#

The lgpatch script (in the same location as the legate executable) can help facilitate quick demonstrations of cupynumeric on existing codebases that make use of numpy.

To use this tool, invoke it as shown below, with the name of the program to patch:

lgpatch <program> -patch numpy

For example, here is a small test.py program that imports and uses various numpy funtions:

# test.py

import numpy as np
input = np.eye(10, dtype=np.float32)
np.linalg.cholesky(input)

You can invoke lgpatch to run test.py using cupynumeric functions instead, without any changes to the original source code. Any standard cupynumeric runtime options (e.g. for Measure API coverage) may also be used:

$ CUPYNUMERIC_REPORT_COVERAGE=1 LEGATE_CONFIG="--cpus 4"  lgpatch test.py -patch numpy
cuPyNumeric API coverage: 4/4 (100.0%)