Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance of lib-caffe-bvlc-clblast-master-gcc-5.4.0-linux-32 on Odroid XU4 #123

Open
dohai90 opened this issue Dec 1, 2017 · 9 comments

Comments

@dohai90
Copy link

dohai90 commented Dec 1, 2017

Hello,

I have 2 Odroid XU4 boards and I have both installed lib-caffe-bvlc-clblast-master-gcc-5.4.0-linux-32 library, but the first one was installed old version and the second one was installed recent version. And I found that the old one has better performance compared to the new one as below:
The new one:
image

The old one:
image

Could you please tell me why this issue occurred?

Best regards

@psyhtest
Copy link
Member

psyhtest commented Dec 1, 2017

@dohai90 There could be many reasons for the regression but let's start from the most obvious ones:

  1. CLBlast has changed. When did you install your first (old) version?
  2. Is the result repeatable? How do you run the program? If you use ck run program:..., you do not fix the CPU and GPU frequency, so they may change during execution. Using ck benchmark program:... is more reliable.

@gfursin
Copy link
Contributor

gfursin commented Dec 2, 2017

Also, after using ck benchmark program (it's a more high-level "pipeline" which attempts to set up and monitor CPU/GPU frequency, etc)) in both cases, please provide the log. It will help us see the resolved dependencies and their versions ... Thanks!

@dohai90
Copy link
Author

dohai90 commented Dec 4, 2017

Hello,
@psyhtest

  1. I installed old version 2 or 3 months ago.
  2. First, I used ck run program:caffe and get the above results. After using ck benchmark program:caffe they give similar performance.

@gfursin
I attached here the log of both cases.
As I understand, the benchmark utility sets max frequency for both CPU and GPU, am I right?
Although the results from both cases are similar by using benchmark utility, I run the same program on 2 boards but the execution times are still different while I have set max frequency for both CPU and GPU via command:
./CK/ck-env/platform.init/generic-odroid/ck-set-cpu-performance
and:
./CK/ck-env/platform.init/generic-odroid/ck-set-gpu-performance
new_device_log.txt
old_device_log.txt

Could you give me any advice why the same program runs on 2 boards which have been set max frequency but still results in different execution time?
If you need I will upload my program here.

Thank you

@psyhtest
Copy link
Member

psyhtest commented Dec 4, 2017 via email

@dohai90
Copy link
Author

dohai90 commented Dec 4, 2017

@psyhtest
Yes, you are right, but that is the benchmark program.
However when I run the same network architecture using lib-caffe-bvlc-clblast-master-gcc-5.4.0-linux-32 framework, the new one is slower even though I have set max frequency for CPU and GPU on both boards, it's really strange.

@psyhtest
Copy link
Member

psyhtest commented Dec 4, 2017 via email

@psyhtest
Copy link
Member

psyhtest commented Dec 4, 2017 via email

@gfursin
Copy link
Contributor

gfursin commented Dec 5, 2017

BTW, the new CLBlast may have regressions on older architectures (though there are plans to make it more adaptive). To check it, you may want to use dvdt profiler to profile OpenCL kernels in Caffe:

$ ck benchmark program:... --dvdt_prof

Also, if you notice some errors in the platform scripts, please feel free to update them and provide a patch. The main idea behind CK is to collaboratively understand regressions/reproducibility issues and solve them ... Thanks!!!

@psyhtest
Copy link
Member

psyhtest commented Dec 7, 2017

In the new device log, I see:

Setting GPU frequency to max (if supported) ...

CMD to set GPU frequency:
  export CK_CPU_FREQUENCY=max;/home/odroid/CK/ck-env/platform.init/generic-odroid/ck-set-gpu-performance

I would expect to see export CK_GPU_FREQUENCY here...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants