RE: VLC x264 GCC profiling
by gil_savir on Sep 2, 2009 |
gil_savir
Posts: 59 Joined: Dec 7, 2008 Last seen: May 10, 2021 |
||
Hi all,
I think it is too early to submit profiling information. We should first make some decisions such as: - which version of x264 do we profile? should we just pick the latest daily snapshot? should we pick up the latest stable release? should we pick a certain daily snapshot and stay with it? - how to configure x264 for profiling before compilation? I suggest the following:
./configure --disable-avis-input --disable-mp4-output --disable-pthread --disable-asm --enable-gprof
I think we should disable what we can for simplicity of profiling. We should, of course enable gprof for profiling, but not the other options, since we do not debug the code, and we want to keep it simple. - what parameters use when executing x264? I suggest --profile baseline to be the only option, so we begin with the baseline profile. Maybe on a later stage of the project we can do main, and/or extended profiles as well. - What platform to use for profiling? I think that each one of us should use its own platform. since we do not use (yet) cpu enhancements, it shouldn't affect the profiling. There was a suggestion to use the openRisc emulator, but I think that at this stage, it might let us discuss and decide these things. After we reach agreement, we should upload one executable (actually two, one for linux and one for windows) that everyone will use for profiling. Then I think we should upload the gmon.out file, and not text files, since It is important to have the executable and the gmon.out file for reading the profiling info with some tools such as kprof and gprof2dot.py. - gil |
RE: VLC x264 GCC profiling
by gil_savir on Sep 2, 2009 |
gil_savir
Posts: 59 Joined: Dec 7, 2008 Last seen: May 10, 2021 |
||
Damn, I miss the EDIT and PREVIEW options on this board...
- What platform to use for profiling? I think that each one of us should use its own platform. since we do not use (yet) cpu enhancements, it shouldn't affect the profiling. There was a suggestion to use the openRisc emulator, but I think that at this stage, it might - gil |
RE: VLC x264 GCC profiling
by gshankara on Sep 2, 2009 |
gshankara
Posts: 14 Joined: Aug 30, 2008 Last seen: Oct 20, 2009 |
||
As a request to help the S/W newbies, may I suggest
either a sticky in the .264 section OR a text file uploaded to the .264 repository that describes the steps performed in order to go through the builds and an example to execute the profiling with a certain input file to be encoded to .264 ? As Gil pointed out, this is described in bits and pieces,in this thread, which is what I used. However, I got stuck at one point where I had to specify an input file for encoding and the CIF files I downloaded seems to be already encoded into .264(based on the extension) It is confusing. I went through the Doom9 forums and felt that we need to spend too much time to search for compile and execute information. Everyone makes an assumption that developers/end users compiling source files know all the basic syntax and semantics of building and experimenting with various options. Maybe, I am the only one here who is having problems:( |
RE: VLC x264 GCC profiling
by brianhxh on Sep 2, 2009 |
brianhxh
Posts: 5 Joined: Jul 8, 2009 Last seen: Oct 14, 2009 |
||
Hi all,
I think it is too early to submit profiling information. We should first make some decisions such as: - which version of x264 do we profile? should we just pick the latest daily snapshot? should we pick up the latest stable release? should we pick a certain daily snapshot and stay with it? - how to configure x264 for profiling before compilation? I suggest the following:
./configure --disable-avis-input --disable-mp4-output --disable-pthread --disable-asm --enable-gprof
I think we should disable what we can for simplicity of profiling. We should, of course enable gprof for profiling, but not the other options, since we do not debug the code, and we want to keep it simple. - what parameters use when executing x264? I suggest --profile baseline to be the only option, so we begin with the baseline profile. Maybe on a later stage of the project we can do main, and/or extended profiles as well. - What platform to use for profiling? I think that each one of us should use its own platform. since we do not use (yet) cpu enhancements, it shouldn't affect the profiling. There was a suggestion to use the openRisc emulator, but I think that at this stage, it might let us discuss and decide these things. After we reach agreement, we should upload one executable (actually two, one for linux and one for windows) that everyone will use for profiling. Then I think we should upload the gmon.out file, and not text files, since It is important to have the executable and the gmon.out file for reading the profiling info with some tools such as kprof and gprof2dot.py. - gil then, I agree with you, 1)we may stay with "x264-snapshot-20090901-2245.tar.bz2", snapshot of the first day of September, there is no need to pursue with the latest version. 2)./configure --disable-avis-input --disable-mp4-output --disable-pthread --disable-asm --enable-gprof 3)./x264 --profile=baseline -o test.264 test.yuv widthxheight, just use the simplest parameter 4)use our own platform, the time of running x264 on OpenRISC maybe too long to slow our process and there are lots of papers to instruct us which to be implemented by HW. then the time infomation provided by gprof may not be used because of different platform configuration, we can only use the calls info. but it's ok, because we need only the relative info. 5)we may have different person to do profiling with different source resolution, such as QCIF, CIF, D1, etc, each > 100 frames. then give a conclusion Then, I think there is only one things to be decided, how can we get proper HW/SW patition by the the information provided by GPROF? hope am right^_^ Brian |
RE: VLC x264 GCC profiling
by burra on Sep 4, 2009 |
burra
Posts: 11 Joined: Aug 13, 2008 Last seen: Nov 24, 2011 |
||
Hi,
FYI there is some applications that makes analyzing gprof files easier. http://code.google.com/p/jrfonseca/wiki/Gprof2Dot http://code.google.com/p/jrfonseca/wiki/XDot Br, |
RE: VLC x264 GCC profiling
by gil_savir on Sep 6, 2009 |
gil_savir
Posts: 59 Joined: Dec 7, 2008 Last seen: May 10, 2021 |
||
Hi,
I uploaded x264 file compiled on linux from x264-snapshot-20090901-2245.tar.bz2 to /oc-h264-encoder/trunk/doc/x264_profiling/bin/x264 using: ./configure --disable-avis-input --disable-mp4-output --disable-pthread --disable-asm --enable-gprof let us use this executable for profiling for now. could someone update the x264_cygwin.exe to one compiled from the same snapshot? -gil |
RE: VLC x264 GCC profiling
by gil_savir on Sep 6, 2009 |
gil_savir
Posts: 59 Joined: Dec 7, 2008 Last seen: May 10, 2021 |
||
I suggest the following procedure for profiling:
1. use the executable from the repository /oc-h264-encoder/trunk/doc/x264_profiling/bin/x264 for encoding the .yuv file, using the format:
./x264 --profile=baseline -o test.264 test.yuv widthxheight
2. Check that the output test.264 is correct. you can play it on vlc player and check that it looks like the original .yuv file. 3. upload the gmon.out file made by the execution of x264 to the repository:
/oc-h264-encoder/trunk/doc/x264_profiling/gmon_files/
name it as follows:
file_name_widthxheight_gmon.out
for example:
akiyo_qcif_176x144_gmon.out
4. when commiting, let the comment include the following info:
added profiling output for file:
filename.yuv from: url with size: widthxheight for example:
added profiling output for file:
akiyo_qcif.yuv from: http://trace.eas.asu.edu/yuv/akiyo/akiyo_qcif.7z with size: 176x144 I think it would be good to start with the files from: http://trace.eas.asu.edu/yuv/ After we get enough gmon.out files, we can check their relative computation intensive functions and start debating which parts to implement in HW. - gil |
RE: VLC x264 GCC profiling
by gil_savir on Sep 6, 2009 |
gil_savir
Posts: 59 Joined: Dec 7, 2008 Last seen: May 10, 2021 |
||
Important NOTE: gmon.out file will accumulate results of the executable (x264 in our case). Therefore, you must delete it before any execution of x264 that is used for profiling. gmon.out will even collect profiling info for executing x264 -h
- gil |
RE: VLC x264 GCC profiling
by burra on Sep 7, 2009 |
burra
Posts: 11 Joined: Aug 13, 2008 Last seen: Nov 24, 2011 |
||
Hi,
is there any point in doing any profiling on a 64 bit PC platform? //Burra |
RE: VLC x264 GCC profiling
by gil_savir on Sep 7, 2009 |
gil_savir
Posts: 59 Joined: Dec 7, 2008 Last seen: May 10, 2021 |
||
There is no problem I can see with that (could anyone correct me if I'm wrong?), since we use a relative profiling data and not the absolute data. Please mention it in the comment when checking-in to the repository.
- gil |
RE: VLC x264 GCC profiling
by burra on Sep 7, 2009 |
burra
Posts: 11 Joined: Aug 13, 2008 Last seen: Nov 24, 2011 |
||
Hi,
have tried to run gprof2dot on the akiyo_cif_profile.data file from svn. Are these pics of any use? To have a look at it on: http://imagebin.org/62844 //Burra |
RE: VLC x264 GCC profiling
by jeffzhan on Sep 7, 2009 |
jeffzhan
Posts: 5 Joined: Jun 11, 2008 Last seen: Jun 15, 2022 |
||
hi, gil, I did the GCC profiling as you said, but result is a little stranger. I use
Red Hat Enterprise Linux Server release 5.1 (Tikanga)。 Is the step as following, 1 ./configure --disable-avis-input --disable-mp4-output --disable-pthread --disable-asm --enable-gprof 2 ./x264 --profile=baseline -o test.264 test.yuv widthxheight 3. gprof -b x264 gmon.out | less > result.txt But my result seems wrong. Pls help me check the attached profiling file.
GCC_Profiling.txt (31 kb)
|
RE: VLC x264 GCC profiling
by burra on Sep 7, 2009 |
burra
Posts: 11 Joined: Aug 13, 2008 Last seen: Nov 24, 2011 |
||
But my result seems wrong. Pls help me check the attached profiling file.
GCC_Profiling.txt (31 kb)
Seems like CPU extensions have been used. In the README file in SVN the --disable-asm parameter is not present. I got a similar result when running without the --disable-asm parameter //Burra |
RE: VLC x264 GCC profiling
by gil_savir on Sep 7, 2009 |
gil_savir
Posts: 59 Joined: Dec 7, 2008 Last seen: May 10, 2021 |
||
Hi,
have tried to run gprof2dot on the akiyo_cif_profile.data file from svn. Are these pics of any use? ... //Burra Hi Burra, These pictures are useful for comprehending the code and the accumulated computing intensive path. These pictures are not so useful for singling-out the most computing intensive functions, seems it highlights accumulated data. Anyway, I find it more useful to generate .dot files with gprof2dot.py and inspect those using xdot.py I think one should upload its gmon.out files to the repository (with information about its source). In your case, you should upload your executable to the repository as well (/oc-h264-encoder/trunk/doc/x264_profiling/bin), and rename it to something like x264_64bit Anyone having the executable and the gmon.out files can generate gprof info, .dot files, pictures such as the one you created, and inspect the profiling results with tools of his/her choice. BTW, you can attach files to your posts. |
RE: VLC x264 GCC profiling
by gil_savir on Sep 7, 2009 |
gil_savir
Posts: 59 Joined: Dec 7, 2008 Last seen: May 10, 2021 |
||
But my result seems wrong. Pls help me check the attached profiling file.
GCC_Profiling.txt (31 kb)
Seems like CPU extensions have been used. In the README file in SVN the --disable-asm parameter is not present. I got a similar result when running without the --disable-asm parameter //Burra Burra, Could you please post the ./configure --... command you use and the output you get? Could you also post the gmon.out file and the x264 executable you used, so I could open the results using xprof? - gil - gil |