Troubleshooting
Having trouble getting PlaidML to work? Well, you’re in the right place!
Before you open a new issue on GitHub, please take a look at the common issues, enable verbose logging in PlaidML, and run backend tests. These steps will help enable us to provide you with better support on your issue.
Common Issues
PlaidML Setup Errors
Memory Errors
OSError: exception: access violation reading 0x0000000000000030
This error might be caused by a memory allocation failure, and it fails silently. You can fix this error by decreasing your batch size and trying again.
plaidml.exceptions.ResourceExhausted: Out of memory
This error is caused by incorrect Tile syntax.
Bazel Issues
For any Bazel-specific issues you’re encountering, we recommend that you first visit Bazel’s installation documentation which has a comprehensive overview of Bazel on various platforms. Any issues commonly encountered by PlaidML users are documented below.
Encountered error while reading extension file 'workspace.bzl': no such package '@toolchain//'
On MacOS devices, toolchain
errors often indicate that the user does not have Xcode properly installed. Even if you have Xcode Command Line Tools installed, you may not have a proper installation of Xcode itself.
To check your installation of Xcode, first print the path of the active developer directory:
xcode-select -p
The resulting path should be /Applications/Xcode.app/Contents/Developer
. If that is not the path you are seeing when you run xcode-select -p
, please go to the App Store and download Xcode.
After verifying that Xcode is properly installed, you will need to reset your Bazel instance before running Bazel again:
bazelisk clean --expunge
PlaidML Exceptions
Applying function, tensor with mismatching dimensionality
This error may be caused by a known issue with the BatchDot
operation, where results are inconsistent across backends. The Keras documentation for BatchDot matches the Theano backend’s implemented behavior and the default behavior within PlaidML. The TensorFlow backend implements BatchDot in a different way, and this causes a mismatch in the expected output shape (there is an open issue against TensorFlow to get this fixed).
If you have existing Keras code that was written for the TensorFlow backend, and it is running into this issue, you can enable experimental support for TensorFlow-like BatchDot
behavior by setting the environment variable PLAIDML_BATCHDOT_TF_BEHAVIOR
to True
.
ERROR:plaidml:syntax error, unexpected -, expecting "," or )
This error may be caused by special characters, such as -
, that are used in variable names within your code. Please try removing and/or replacing special characters in your variable names, and try running again.
Run Backend Tests
Backend Tests provide us with useful information that we can use to help solve your issue. To run backend tests on PlaidML, follow these steps:
- Verify that you have the PlaidML Python Wheel built as specified in building.md
- Run the backend tests through Bazel
bazel test --config macos_x86_64 @com_intel_plaidml//plaidml/keras:backend_test
Enable Verbose Logging
You can enable verbose logging through the environment variable PLAIDML_VERBOSE
.
PLAIDML_VERBOSE
should be set to an integer specifying the level of verbosity (valid levels are 0-4 inclusive, where 0 is not verbose and 4 is the most verbose).
For instance, the following command would set a verbosity level of 1.
export PLAIDML_VERBOSE=1