Cheat Sheet
Get started with Intel® Extension for PyTorch* using the following commands:
| Description | Command | 
|---|---|
| Basic CPU Installation | python -m pip install intel_extension_for_pytorch | 
| Import Intel® Extension for PyTorch* | import intel_extension_for_pytorch as ipex | 
| Capture a Verbose Log (Command Prompt) | export ONEDNN_VERBOSE=1 | 
| Optimization During Training | model = ...optimizer = ...model.train()model, optimizer = ipex.optimize(model, optimizer=optimizer) | 
| Optimization During Inference | model = ...model.eval()model = ipex.optimize(model) | 
| Optimization Using the Low-Precision Data Type bfloat16 During Training (Default FP32) | model = ...optimizer = ...model.train()model, optimizer = ipex.optimize(model, optimizer=optimizer, dtype=torch.bfloat16)with torch.no_grad():with torch.cpu.amp.autocast():model(data) | 
| Optimization Using the Low-Precision Data Type bfloat16 During Inference (Default FP32) | model = ...model.eval()model = ipex.optimize(model, dtype=torch.bfloat16)with torch.cpu.amp.autocast():model(data) | 
| [Experimental] Fast BERT Optimization | from transformers import BertModelmodel = BertModel.from_pretrained("bert-base-uncased")model.eval()model = ipex.fast_bert(model, dtype=torch.bfloat16) | 
| Run CPU Launch Script (Command Prompt): Automate Configuration Settings for Performance | ipexrun [knobs] <your_pytorch_script> [args] | 
| [Experimental] Run HyperTune to perform hyperparameter/execution configuration search | python -m intel_extension_for_pytorch.cpu.hypertune --conf-file <your_conf_file> <your_python_script> [args] | 
| [Experimental] Enable Graph capture | model = …model.eval()model = ipex.optimize(model, graph_mode=True) | 
| Post-Training INT8 Quantization (Static) | model = …model.eval()data = …qconfig = ipex.quantization.default_static_qconfigprepared_model = ipex.quantization.prepare(model, qconfig, example_inputs=data, anyplace=False)for d in calibration_data_loader():prepared_model(d)converted_model = ipex.quantization.convert(prepared_model) | 
| Post-Training INT8 Quantization (Dynamic) | model = …model.eval()data = …qconfig = ipex.quantization.default_dynamic_qconfigprepared_model = ipex.quantization.prepare(model, qconfig, example_inputs=data)converted_model = ipex.quantization.convert(prepared_model) | 
| [Experimental] Post-Training INT8 Quantization (Tuning Recipe): | model = …model.eval()data = …qconfig = ipex.quantization.default_static_qconfigprepared_model = ipex.quantization.prepare(model, qconfig, example_inputs=data, inplace=False)tuned_model = ipex.quantization.autotune(prepared_model, calibration_data_loader, eval_function, sampling_sizes=[100],accuracy_criterion={'relative': .01}, tuning_time=0)convert_model = ipex.quantization.convert(tuned_model) |