hi,
Sorry for the tittle, i do not know if is a coorect english ;))
I am testing on Hauwei Honnor play Kirim 970 and ARM mali G72 MP12. And use the 32 bit lib. 64 not working ?
So i found out that kernel time excecution increase in time. here are some output.
2021-08-18 13:58:43.877 E/JNIProcessor: 13 traitement bufligne finished in 49 ms temps Moy 49 Nb Frame 24
2021-08-18 13:58:46.169 E/JNIProcessor: 13 traitement bufligne finished in 86 ms temps Moy 90 Nb Frame 50
2021-08-18 13:58:51.611 E/JNIProcessor: 13 traitement bufligne finished in 109 ms temps Moy 109 Nb Frame 100
2021-08-18 13:58:57.534 E/JNIProcessor: 13 traitement bufligne finished in 112 ms temps Moy 115 Nb Frame 150
then the time stabalize around 100 Ms
here is one full frame traitment :
FRAME 20
2021-08-18 14:12:35.917 E/JNIProcessor: 00 Create Buffer CL_MEM_READ_ONLY | CL_MEM_USE_HOST_PTR finished in 1 ms ligth: 582021-08-18 14:12:35.924 E/JNIProcessor: 0 gNV21Kernel finished in 8 ms ligth: 582021-08-18 14:12:35.924 I/JNIProcessor: debug ind: 0 value: 312703 2021-08-18 14:12:35.924 I/JNIProcessor: debug ind: 1 value: 439629 2021-08-18 14:12:35.924 I/JNIProcessor: debug ind: 2 value: 388327 2021-08-18 14:12:35.925 I/JNIProcessor: debugIdx value: 2953 decalage 0 2021-08-18 14:12:35.928 E/JNIProcessor: 2 gSuperPixel 1 finished in 12 ms ligth: 582021-08-18 14:12:35.930 E/CameraPreview: onDraw 19 flipframe 02021-08-18 14:12:35.930 E/CameraPreview: !! dispatchDraw 19 flipframe 12021-08-18 14:12:35.934 E/JNIProcessor: 2 gVision 1 finished in 18 ms ligth: 582021-08-18 14:12:35.939 E/JNIProcessor: 2 gSuperPixel 2 finished in 22 ms ligth: 582021-08-18 14:12:35.944 E/JNIProcessor: 2 gVision 2 finished in 28 ms ligth: 582021-08-18 14:12:35.948 E/JNIProcessor: 1 gFiltreColor finished in 31 ms ligth: 582021-08-18 14:12:35.950 E/JNIProcessor: 3 gCompression finished in 33 ms ligth: 582021-08-18 14:12:35.950 E/JNIProcessor: 3 gLignes before enqueueReadBuffer finished in 34 ms ligth: 582021-08-18 14:12:35.951 E/JNIProcessor: 4 traitement enqueueReadBuffer finished in 35 ms 2021-08-18 14:12:35.951 E/JNIProcessor: 5 Start traitement forme CPU multi thread at 35 ms 2021-08-18 14:12:35.954 E/JNIProcessor: Trait_Raw_Col Rouge 0 indrectRV: 197 2021-08-18 14:12:35.954 E/JNIProcessor: void Extraction_Point: buf.bufligne rougeX: 40102021-08-18 14:12:35.955 E/JNIProcessor: void Extraction_Point: buf.bufligne vertY: 46712021-08-18 14:12:35.955 E/JNIProcessor: Trait_Raw_Col Blanc 2 indrectBV: 186 2021-08-18 14:12:35.955 E/JNIProcessor: Trait_Raw_Col Vert 1 indrectVH: 182 2021-08-18 14:12:35.956 E/JNIProcessor: void Extraction_Point: buf.bufligne bleuY: 48392021-08-18 14:12:35.956 E/JNIProcessor: void Extraction_Point: buf.bufligne blancX: 28962021-08-18 14:12:35.956 E/JNIProcessor: Trait_Raw_Col Bleue 3 indrectBH: 195 2021-08-18 14:12:35.957 E/JNIProcessor: 9 traitement forme CPU multi thread finished in 40 ms 2021-08-18 14:12:35.957 E/JNIProcessor: 10 traitement enqueueWriteBuffer finished in 41 ms 2021-08-18 14:12:35.959 E/JNIProcessor: 10Bis traitement Lignes2 finished in 42 ms 2021-08-18 14:12:35.960 E/JNIProcessor: 11 traitement mélange image finished in 44 ms 2021-08-18 14:12:35.963 E/JNIProcessor: 12 enqueueReadBuffer to display finished in 47 ms 2021-08-18 14:12:35.963 E/JNIProcessor: 13 traitement bufligne finished in 47 ms temps Moy 47 Nb Frame 20 2021-08-18 14:12:35.963 E/JNIProcessor: 14 END JNICALL CameraPreview_runfilter 2021-08-18 14:12:35.963 E/CameraPreview: onPreviewFrame 202021-08-18 14:12:35.964 E/JNIProcessor: 000 START JNICALL CameraPreview_runfilter
FRAME 162
2021-08-18 13:58:58.772 E/JNIProcessor: 00 Create Buffer CL_MEM_READ_ONLY | CL_MEM_USE_HOST_PTR finished in 2 ms ligth: 582021-08-18 13:58:58.778 E/CameraPreview: onDraw 161 flipframe 02021-08-18 13:58:58.778 E/CameraPreview: !! dispatchDraw 161 flipframe 12021-08-18 13:58:58.790 E/JNIProcessor: 0 gNV21Kernel finished in 19 ms ligth: 582021-08-18 13:58:58.790 I/JNIProcessor: debug ind: 0 value: 284799 2021-08-18 13:58:58.790 I/JNIProcessor: debug ind: 1 value: 446655 2021-08-18 13:58:58.790 I/JNIProcessor: debug ind: 2 value: 527627 2021-08-18 13:58:58.790 I/JNIProcessor: debugIdx value: 2879 decalage 0 2021-08-18 13:58:58.801 E/JNIProcessor: 2 gSuperPixel 1 finished in 30 ms ligth: 582021-08-18 13:58:58.816 E/JNIProcessor: 2 gVision 1 finished in 45 ms ligth: 582021-08-18 13:58:58.826 E/JNIProcessor: 2 gSuperPixel 2 finished in 56 ms ligth: 582021-08-18 13:58:58.842 E/JNIProcessor: 2 gVision 2 finished in 71 ms ligth: 582021-08-18 13:58:58.846 E/JNIProcessor: 1 gFiltreColor finished in 75 ms ligth: 582021-08-18 13:58:58.850 E/JNIProcessor: 3 gCompression finished in 79 ms ligth: 582021-08-18 13:58:58.850 E/JNIProcessor: 3 gLignes before enqueueReadBuffer finished in 79 ms ligth: 582021-08-18 13:58:58.851 E/JNIProcessor: 4 traitement enqueueReadBuffer finished in 80 ms 2021-08-18 13:58:58.851 E/JNIProcessor: 5 Start traitement forme CPU multi thread at 80 ms 2021-08-18 13:58:58.853 E/JNIProcessor: void Extraction_Point: buf.bufligne vertY: 90042021-08-18 13:58:58.853 D/ZrHung.AppEyeUiProbe: stop checker.2021-08-18 13:58:58.854 E/JNIProcessor: Trait_Raw_Col Rouge 0 indrectRV: 368 2021-08-18 13:58:58.854 E/JNIProcessor: void Extraction_Point: buf.bufligne bleuY: 60482021-08-18 13:58:58.854 E/JNIProcessor: Trait_Raw_Col Bleue 3 indrectBH: 360 2021-08-18 13:58:58.855 E/JNIProcessor: Trait_Raw_Col Vert 1 indrectVH: 375 2021-08-18 13:58:58.856 E/JNIProcessor: void Extraction_Point: buf.bufligne rougeX: 49942021-08-18 13:58:58.856 E/JNIProcessor: void Extraction_Point: buf.bufligne blancX: 36582021-08-18 13:58:58.856 E/JNIProcessor: Trait_Raw_Col Blanc 2 indrectBV: 410 2021-08-18 13:58:58.857 E/JNIProcessor: 9 traitement forme CPU multi thread finished in 86 ms 2021-08-18 13:58:58.859 E/JNIProcessor: 10 traitement enqueueWriteBuffer finished in 88 ms 2021-08-18 13:58:58.860 E/JNIProcessor: 10Bis traitement Lignes2 finished in 89 ms 2021-08-18 13:58:58.862 E/JNIProcessor: 11 traitement mélange image finished in 92 ms 2021-08-18 13:58:58.866 E/JNIProcessor: 12 enqueueReadBuffer to display finished in 95 ms 2021-08-18 13:58:58.866 E/JNIProcessor: 13 traitement bufligne finished in 95 ms temps Moy 108 Nb Frame 162 2021-08-18 13:58:58.866 E/JNIProcessor: 14 END JNICALL CameraPreview_runfilter 2021-08-18 13:58:58.866 E/CameraPreview: onPreviewFrame 1622021-08-18 13:58:58.867 E/JNIProcessor: 000 START JNICALL CameraPreview_runfilter
so i am wondering if i am doing some thing wrong using OpenCL. Or i may forgot an importante thing.
Thanks for the help.
regards herve terrolle
Hi! This might be caused by dynamic frequency and voltage adjustment.
You can find some info about in our guide ('Check system settings' section):
https://documentation-service.arm.com/static/5ea82dba9931941038df2098?token=
This can be applied to OpenCL as well.
Hi hterrolle,
If each OpenCL kernel process the same amount of instruction/data, and you execute them directly one after the other, and the time increase at each kernel execution, it may be related to temperature of your device.
Under Linux, if the device reach a "high" temperature, the OS will throttle the CPU performance trying to limit the temperature by reducing the frequency as suggested by Pavel Rudko.
Could you have a try to insert a delay between each kernel processing? Could you monitor the temperature and frequency in parallel of your execution?
You could try/adapt the few scripts suggested in Why performance is higher on LITTLE cores? - Architectures and Processors forum - Support forums - Arm Community
Best Regards,
Willy