Hello,
We are trying to use a model on Android on Vulkan backend.
However, we encounter the following error:
PlatformException (PlatformException(DemixingError, Could not run 'aten::reflection_pad1d.out' with arguments from the 'Vulkan' backend. This could be because the operator doesn't exist for this backend, or was omitted during the selective/custom build process (if using custom build). If you are a Facebook employee using PyTorch on mobile, please visit https://fburl.com/ptmfixes for possible resolutions. 'aten::reflection_pad1d.out' is only available for these backends: [CPU, QuantizedCPU, BackendSelect, ADInplaceOrView, AutogradOther, AutogradCPU, AutogradCUDA, AutogradXLA, AutogradLazy, AutogradXPU, AutogradMLC, AutogradHPU, Functionalize].
CPU: registered at /home/marc/pytorch/build_android_arm64-v8a/aten/src/ATen/RegisterCPU.cpp:20948 [kernel]
QuantizedCPU: registered at /home/marc/pytorch/build_android_arm64-v8a/aten/src/ATen/RegisterQuantizedCPU.cpp:1223 [kernel]
BackendSelect: fallthrough registered at /home/marc/pytorch/aten/src/ATen/core/BackendSelectFallbackKernel.cpp:3 [backend fallback]
ADInplaceOrView: fallthrough registered at /home/marc/pytorch/aten/src/ATen/core/VariableFallbackKernel.cpp:64 [backend fallback]
AutogradOther: fallthrough registered at /home/marc/pytorch/aten/src/ATen/core/VariableFallbackKernel.cpp:35 [backend fallback]
AutogradCPU: fallthrough registered at /home/marc/pytorch/aten/src/ATen/core/VariableFallbackKernel.cpp:39 [backend fallback]
AutogradCUDA: fallthrough registered at /home/marc/pytorch/aten/src/ATen/core/VariableFallbackKernel.cpp:47 [backend fallback]
AutogradXLA: fallthrough registered at /home/marc/pytorch/aten/src/ATen/core/VariableFallbackKernel.cpp:51 [backend fallback]
AutogradLazy: fallthrough registered at /home/marc/pytorch/aten/src/ATen/core/VariableFallbackKernel.cpp:55 [backend fallback]
AutogradXPU: fallthrough registered at /home/marc/pytorch/aten/src/ATen/core/VariableFallbackKernel.cpp:43 [backend fallback]
AutogradMLC: fallthrough registered at /home/marc/pytorch/aten/src/ATen/core/VariableFallbackKernel.cpp:59 [backend fallback]
AutogradHPU: fallthrough registered at /home/marc/pytorch/aten/src/ATen/core/VariableFallbackKernel.cpp:68 [backend fallback]
Functionalize: registered at /home/marc/pytorch/build_android_arm64-v8a/aten/src/ATen/RegisterFunctionalization_1.cpp:5316 [kernel]
Debug info for handle(s): debug_handles:{-1}, was not found.
Exception raised from reportError at /home/marc/pytorch/aten/src/ATen/core/dispatch/OperatorEntry.cpp:434 (most recent call first):
(no backtrace available), null, null))
We followed PyTorch Vulkan Backend User Workflow — PyTorch Tutorials 1.10.1+cu102 documentation.
Does this mean our model can’t be used with Vulkan at this time?
You can find our app/build.gradle
file here:
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
compileSdkVersion flutter.compileSdkVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
applicationId "com.demixr.demixr_app"
minSdkVersion 24
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
externalNativeBuild {
cmake {
cppFlags ''
}
}
}
buildTypes {
release {
minifyEnabled false
shrinkResources false
signingConfig signingConfigs.debug
applicationVariants.all { variant ->
variant.outputs.all { output ->
project.ext { appName = 'demixr' }
outputFileName = "${appName}_${output.name}_${variant.versionName}.apk"
}
}
}
}
externalNativeBuild {
cmake {
path file('src/main/cpp/CMakeLists.txt')
version '3.10.2'
}
}
}
dependencies {
implementation 'com.facebook.fbjni:fbjni-java-only:0.2.2'
implementation 'com.facebook.soloader:nativeloader:0.10.3'
implementation files('libs/pytorch_android-release.aar')
}
flutter {
source '../..'
}
We are also not sure why we need to add implementation 'com.facebook.fbjni:fbjni-java-only:0.2.2'
and implementation 'com.facebook.soloader:nativeloader:0.10.3'
as we built Pytorch Android from source with the lite module.
Thanks in advance!