TNTwise/rife-ncnn-vulkan

Segfault in CPU mode (`-g -1`), not happen in nihui's repo

Closed this issue · 3 comments

Grateful for your help. On (my) Android device, CPU typically runs rife-ncnn-vulkan faster than GPU, so it's meaningful to fix the bug.

I tested with this command

rife-ncnn-vulkan -0 0.png -1 1.png -o output-cpu.png -m rife-v4.6 -g -1 -v
  • OS: Termux (Android), with LD_PRELOAD=/system/lib64
  • Hardware: Samsung Z Fold5, Snapdragon 8 Gen 2, Adreno 740

If you are happy to run try on your Android phone (or emulator), you can install the Termux package builds from my actions:

TNTwise/rife-ncnn-vulkan

Failed, log:

[0 Adreno (TM) 740]  queueC=0[3]  queueG=0[3]  queueT=0[3]
[0 Adreno (TM) 740]  bugsbn1=1  bugbilz=0  bugcopc=0  bugihfa=0
[0 Adreno (TM) 740]  fp16-p/s/u/a=1/1/0/1  int8-p/s/u/a=1/1/0/1
[0 Adreno (TM) 740]  subgroup=64  basic/vote/ballot/shuffle=1/1/1/1
[0 Adreno (TM) 740]  fp16-8x8x16/16x8x8/16x8x16/16x16x16=0/0/0/0
Segmentation fault

nihui/rife-ncnn-vulkan

Succeeded, log:

[0 Adreno (TM) 740]  queueC=0[3]  queueG=0[3]  queueT=0[3]
[0 Adreno (TM) 740]  bugsbn1=1  bugbilz=0  bugcopc=0  bugihfa=0
[0 Adreno (TM) 740]  fp16-p/s/a=1/1/1  int8-p/s/a=1/1/1
[0 Adreno (TM) 740]  subgroup=64  basic=1  vote=1  ballot=1  shuffle=1
0.png 1.png 0.500000 -> output-cpu.png done

This is most likely ncnn version, you would have to change out the submodule for something closer to the original rife ncnn repo.

I will swap submodules and see if cpu works on linux.

I tested and it is working with CPU, closing. Please say if this does not fix it for you.