Android平板Adreno 730 GPU的OpenCL设备连接报错排查
Adreno 730 Android平板OpenCL设备连接问题
问题详情
我在搭载Adreno 730 GPU的Android平板上搭建OpenCL内核,使用以下代码调用clGetDeviceIDs()连接GPU:
cl_device_id device_id; err = clGetDeviceIDs(NULL, CL_DEVICE_TYPE_GPU, 1, &device_id, NULL);
运行时收到CL_INVALID_VALUE错误,官方文档标注该错误触发条件为“当num_entries为0且devices非空,或num_devices与devices均为空”,但我的num_entries=1,完全不符合这个触发条件,搞不懂报错原因。
如果在获取设备ID前先调用clGetPlatformIDs()获取平台,应用会直接崩溃,崩溃日志如下:
Fatal signal 5 (SIGTRAP), code 1 (TRAP_BRKPT), fault addr 0x726e6b1004 in tid 30364 (om.example.demo), pid 30364 (om.example.demo) Cmdline: com.example.demo pid: 30364, tid: 30364, name: om.example.demo >>> com.example.demo <<< #00 pc 0000000000001004 /data/app/~~bwptcAF2Mcxj1QrTS4VEAA==/com.example.demo-M6X_ed8wUlOuBtErB5lu1Q==/base.apk!ld-android.so (__loader_dlopen+4) (BuildId: daa6dd2d221674856cad38a0130d0b16) #01 pc 00000000000010e0 /data/app/~~bwptcAF2Mcxj1QrTS4VEAA==/com.example.demo-M6X_ed8wUlOuBtErB5lu1Q==/base.apk!libdl_android.so (android_get_exported_namespace+12) (BuildId: a506d7cbefe663d77d99d39034bddf74) #02 pc 0000000000001194 /data/app/~~bwptcAF2Mcxj1QrTS4VEAA==/com.example.demo-M6X_ed8wUlOuBtErB5lu1Q==/base.apk!libvndksupport.so (android_load_sphal_library+308) (BuildId: fa178c0474c2bbfb9380bc25fc0547ec) #03 pc 0000000000021c70 /data/app/~~bwptcAF2Mcxj1QrTS4VEAA==/com.example.demo-M6X_ed8wUlOuBtErB5lu1Q==/base.apk!libOpenCL.so (clGetPlatformIDs+72) (BuildId: 4252b0a3fc7297cc93dfa7a31c208d1f) #04 pc 0000000000005d30 /data/app/~~bwptcAF2Mcxj1QrTS4VEAA==/com.example.demo-M6X_ed8wUlOuBtErB5lu1Q==/base.apk!libdemo.so (Java_com_example_demo_MainActivity_getInt+32) (BuildId: a0b5246c34b8e042c29bfe224a864d949ab56d04) #07 pc 0000000000000eac /data/app/~~bwptcAF2Mcxj1QrTS4VEAA==/com.example.demo-M6X_ed8wUlOuBtErB5lu1Q==/base.apk (com.example.demo.MainActivity.onCreate$lambda$0+48) #09 pc 0000000000000e1c /data/app/~~bwptcAF2Mcxj1QrTS4VEAA==/com.example.demo-M6X_ed8wUlOuBtErB5lu1Q==/base.apk (com.example.demo.MainActivity.$r8$lambda$KC6AjQoJlmGj4vROYZUNl9WDJyU+0) #11 pc 0000000000000dd4 /data/app/~~bwptcAF2Mcxj1QrTS4VEAA==/com.example.demo-M6X_ed8wUlOuBtErB5lu1Q==/base.apk (com.example.demo.MainActivity$$ExternalSyntheticLambda0.onClick+4) #17 pc 00000000002e7432 /data/app/~~bwptcAF2Mcxj1QrTS4VEAA==/com.example.demo-M6X_ed8wUlOuBtErB5lu1Q==/base.apk (com.google.android.material.button.MaterialButton.performClick+22)
问题似乎出在ld-android.so上,这个库是直接从/system/lib64/获取的。
内容的提问来源于stack exchange,提问作者terdev
相关产品推荐
相关产品推荐

