User guide# Usage Jupyter Best practices General Recommendations Guidelines on using cuPyNumeric APIs Guidelines on designing cuPyNumeric applications Howtos Measure API coverage Performance Benchmarking Trying Numpy code without changes Advanced topics Multi-node execution Passing Legion and Realm arguments Using the GASNet networking backend Resource Scoping Data Offloading Advanced Topics in cuPyNumeric (Profiling & Debugging) Overview Usage Profiling cuPyNumeric Applications with Legate Profilers – Example 1 Profilers - Wrap Up Understanding and Handling Out-of-Memory (OOM) Issues – Example 2 Steps to Diagnose OOM Mitigation Strategies A Few Examples For Applying Different Mitigations Differences with Numpy Supported shapes and datatypes Returning a copy instead of a view Order argument Reductions Scalar return values Indexing behavior Tutorial Introduction Hardware requirements Basic Linux installation HPC cluster installation Running cuPyNumeric code Examples Resource allocation Best practices Extend cuPyNumeric with Legate-tasks What is a Legate task? SAXPY problem Histogram problem Simple matrix multiplication problem Fast Fourier Transform problem