Hi Namik,

I finished most of the rearrangements for the BLAS3-benchmark, only a 
little bit of cleanup left (i.e. setting parameters in expert mode, 
looking into why the y-axis is only a few pixels high before pushing the 
first results). I'll start looking into deployment now.

Could you please have a look at 'your' items? Start with the ones you 
consider having highest priority to be completed for the first release :-)

Thanks and best regards,
Karli



On 11/18/2014 10:13 PM, Namik Karovic wrote:
> Hi Karl,
>
> thanks for the feedback.
>
>     > -advanced mode: reset (load default) benchmark settings button
>     nice to have, but not a blocker :-)
>
>
> Shouldn't be too hard to implement. I'll add it for the first release.
>
>
>     this is not as easy as it may seem. Even if the memory consumed by
>     the benchmark is below the physical memory provided, the GPU memory
>     may be occupied otherwise. This is particularly an issue with mobile
>     GPUs attached to 4K displays, where the screen buffer occupies a
>     decent amount of GPU RAM. I think the best we can do is to warn a
>     user, e.g.
>     "The benchmark configuration you provided exceeds XXX (256?) MB of
>     GPU RAM. This may exhaust your available GPU RAM. Do you want to
>     continue? [Continue]/[Cancel]"
>
>
> A simple warning message is indeed a good solution. Added to my primary
> TODO list.
>
>
>
>         -vector benchmark progress update is slacking; it should be
>         updated with
>         each completed step instead of going from 0% to 100% in one step
>         (the
>         benchmarking loop needs to altered a little to fix this)
>
>
>     Fine with me. Can you fix this?
>     Also, I noticed that a repeated reset of the x-axis leads to ugly
>     fonts for the labels, so the axis should only be set once when
>     starting the benchmark. See screenshot attached, including some
>     other things...
>
>
> A little rework in the benchmarking loop will fix the progress update
> bug. Won't be an issue for me.
> As for the x-axis resetting, new tick points are added with each result
> entry which is why it looks so "jerky" while plotting. I'll make it so
> that all tick points are added before the plotting begins. This should
> also solve the font issue, since there won't be multiple tick labels
> stacking on top of each other.
>
>
>
>         -benchmarking with a custom sparse matrix now works with some
>         matrices,
>         but not all; at least now it doesn't crash the program...
>
>
>     This is presumably due to the matrix market format. Matrices with
>     scalar type 'complex' or with pattern type 'pattern' are not
>     supported. Can you add an error message stating this? Something like
>     "The matrix market reader cannot read the provided file. Only
>     real-valued matrices in coordinate-format are supported."
>
>
> Does the matrix reader provide different error codes for different
> reading errors? I see that it prints "supports only real valued floating
> point arithmetic" to the console, so I should cover all possible error
> types if there's more than one.
>
>
>
>         -"my results" screen needs significant improvements:more
>         benchmark data
>         should be shown, auto-refresh when a result gets saved,
>         enable/disable
>         result saving, delete selected/all results, add user notes, maybe a
>         dynamic filter to search through result notes...
>
>
>     Can we disable the 'my results' screen for the first release? I
>     think it requires too much work *now*, but can be picked up any time
>     later.
>
>
>         -result uploading: it's completely missing
>
>
>     Disable that for the 1.0.0 release. The infrastructure is not yet
>     ready - in particular, result uploads are only interesting once we
>     have autotuning features in the GUI.
>
>
>         -"result database" screen: also completely missing
>
>
>     Disable :-)
>
>
> Roger that.
>
>
>
>         -"system info" screen feels kinda weird. Is it just me or maybe
>         it could
>         use some improvements?
>
>
>     Well, at least it is informative. ;-)
>     It would be great if you can make it a bit more appealing, but
>     visual appearance is not a top priority here I'd say...
>
>
> Agreed. Moved to low priority, but I'll still keep it in my head in case
> I think of something.
>
>
>
>         -matrixmarket: reconnect the "download & run" functionality now that
>         benchmarking with custom sparse matrices does not crash the program.
>         Also, show the achieved result inside the matrixmarket table.
>         The idea
>         is to make it work like this: you find a nice matrix, hit download &
>         run, the program downloads the matrix,  runs a benchmark with your
>         matrix, and shows the result next the "download&run" button. It
>         would be
>         good if we could avoid switching to the "benchmark" screen during
>         execution, and make it so that users don't need to leave the
>         "matrixmarket" screen at all.
>
>
>     Hmm, I think it is interesting for the user to see which sparse
>     matrix type works best for the particular sparse matrix. Unless we
>     can provide the full results from the 'sparse' tab in the
>     MatrixMarket, I'd rather refrain from it for now.
>
>
> By "full results" do you mean those 7 tests that comprise the "sparse
> benchmark" (HYB, ELL, CSR and others)? Showing 7 results instead of 1
> isn't a big a problem. I'd just have to play around the matrix table
> layout to make 'em all fit properly.
>
>
>
>         -some minor "face-lifting" procedures: Qt isn't very friendly
>         when it
>         comes to customizing the looks of widgets. That's why some
>         buttons and
>         tabs might look a bit wrong (depending on your platform). This
>         isn't a
>         significant issue, but still needs to be looked at.
>
>
>     I fixed a couple of these issues by removing hard-wired margins and
>     such. The home screen still has some layout issues, see screenshot.
>
>
> About the hard-wired margins: when a result (bar graph) is too large to
> fit on the plot, it goes out of bounds. Since the result value label is
> "appended" to the end of the result bar, it goes out of bounds together
> with the bar and cannot be displayed. The hard-wired margins were there
> to ensure the labels will be displayed even if the result bar gets too
> big. This kind of label rendering behavior is pretty weird if you ask
> me, but that's how it is. Your solution to hard-code the axis range from
> 0.1 to 5000 should work for now, but the labels will disappear if the
> result gets close to that 5k mark. But I guess that's not a big problem
> at the moment since 5k is currently not reachable (or is it?).
>
> As for the home screen layout issues and widget display bugs: like I
> said, Qt turns into a spoiled brat as soon as you start messing with the
> looks of its widgets. I can't say if it will be possible to make it look
> good on all platforms. Lots of testing will be needed to ensure it looks
> as it should on every platform... And that empty space in the home
> screen should be definitely used for something, I just don't know what :D
>
>
>     Some more thoughts (some are trivial to fix):
>     - Result tabs: Can these tabs be renamed to "Dense
>     Matrix-Matrix-Products", "Host-Device Copy", "Sparse Matrix-Vector
>     Product", and "Vector Operations", respectively? I tried to do that,
>     but it seems like the current strings have some further meaning for
>     the program control flow (fix this?)?
>
>
> You mean the detailed test results tab names in the bottom? I don't
> recall their strings being important to the program flow control. Maybe
> I hard-coded something for testing purposes but forgot to fix it
> afterwards...
>
>
>     - I think it makes more sense for the BLAS 3 benchmark to scan
>     through different matrix sizes, rather than using a fixed size. The
>     benchmark just stops when a kernel run starts to take more than,
>     say, a second. This ensures that the benchmark does not get stuck on
>     mobile hardware, which is far slower than high-end desktop hardware
>     and for which we may not have good kernels yet. I'll take care of this.
>
>
> Hmm, keep in mind that we need still need to make a "standardized"
> benchmark configuration for the standard benchmark mode. Using different
> matrix sizes for different hardware is not a very "standardized" thing
> to do.
>
>     - Results summary: Rather than providing an average, I think that
>     taking the best results makes more sense. For example, for the
>     sparse bench a user is really not interested in how many FLOPs are
>     obtained on average, but how many FLOPs the fastest matrix type
>     provides. Also an easy fix :-)
>
>
> Heh, originally I made it so that the best result is shown in the
> "result summary" graph. But then you said it might be better to use
> median values so I went with that :) Twas probably a misunderstanding,
> very easy to fix =)
>
>     The final 'big TODO' is, of course, to provide a reasonably
>     automated packager to ship executables for Windows and Linux. I'm
>     less worried about Linux, because OpenCL can typically be found in a
>     system path. However, getting this to work with Windows might be
>     quite tricky, since a user might have the OpenCL lib installed at
>     whatever path. Either way, I reserved the weekend for this, so we
>     should be able to release early next week. (I can't postpone the
>     release, I'm totally filled with other work until the end of the
>     year then.)
>
>
> Noob question: can't we package those OpenCL libs with our program, or
> are those libs specific to each user's CPU/GPU manufacturer? What I'm
> trying to ask is this: do users need to have a specific OpenCL SDK
> installed (for example, I had to install AMD APP SDK separately for
> development purposes), or is there a "general purpose" OpenCL lib that
> anyone can use with any hardware and that also happens to be easily
> package-able?
>
> As for an automated packager, we could use Qt Installer Framework
> <http://qt-project.org/doc/qtinstallerframework-1.4/index.html>. I've
> never used before, but considering the good documentation I don't think
> it'll be a problem.
>
>
> Regards,
> Namik
>
> On Tue, Nov 18, 2014 at 10:46 AM, Karl Rupp <r...@iue.tuwien.ac.at
> <mailto:r...@iue.tuwien.ac.at>> wrote:
>
>     Hi Namik,
>
>     thanks for the list. I'll comment on the items inline, particularly
>     with having the aim of a release in the near future in mind.
>
>     > -advanced mode: reset (load default) benchmark settings button
>
>     nice to have, but not a blocker :-)
>
>
>         -advanced mode: it would be cool if we could show how much video
>         memory
>         is required to complete the benchmark. This could be very useful
>         when
>         playing with custom settings as we would know in advance if we
>         set the
>         matrix size too high, thus preventing the program from crashing.
>
>
>     this is not as easy as it may seem. Even if the memory consumed by
>     the benchmark is below the physical memory provided, the GPU memory
>     may be occupied otherwise. This is particularly an issue with mobile
>     GPUs attached to 4K displays, where the screen buffer occupies a
>     decent amount of GPU RAM. I think the best we can do is to warn a
>     user, e.g.
>     "The benchmark configuration you provided exceeds XXX (256?) MB of
>     GPU RAM. This may exhaust your available GPU RAM. Do you want to
>     continue? [Continue]/[Cancel]"
>
>
>         -which makes me think a certain "safety switch" could also be a nice
>         addition, one that would prevent users from starting a benchmark
>         if the
>         settings are set too high.
>
>
>     I think the warning dialog above would take care of this. :-)
>
>
>         -vector benchmark progress update is slacking; it should be
>         updated with
>         each completed step instead of going from 0% to 100% in one step
>         (the
>         benchmarking loop needs to altered a little to fix this)
>
>
>     Fine with me. Can you fix this?
>     Also, I noticed that a repeated reset of the x-axis leads to ugly
>     fonts for the labels, so the axis should only be set once when
>     starting the benchmark. See screenshot attached, including some
>     other things...
>
>
>         -benchmarking with a custom sparse matrix now works with some
>         matrices,
>         but not all; at least now it doesn't crash the program...
>
>
>     This is presumably due to the matrix market format. Matrices with
>     scalar type 'complex' or with pattern type 'pattern' are not
>     supported. Can you add an error message stating this? Something like
>     "The matrix market reader cannot read the provided file. Only
>     real-valued matrices in coordinate-format are supported."
>
>
>         -"my results" screen needs significant improvements:more
>         benchmark data
>         should be shown, auto-refresh when a result gets saved,
>         enable/disable
>         result saving, delete selected/all results, add user notes, maybe a
>         dynamic filter to search through result notes...
>
>
>     Can we disable the 'my results' screen for the first release? I
>     think it requires too much work *now*, but can be picked up any time
>     later.
>
>
>         -result uploading: it's completely missing
>
>
>     Disable that for the 1.0.0 release. The infrastructure is not yet
>     ready - in particular, result uploads are only interesting once we
>     have autotuning features in the GUI.
>
>
>         -"result database" screen: also completely missing
>
>
>     Disable :-)
>
>
>         -"system info" screen feels kinda weird. Is it just me or maybe
>         it could
>         use some improvements?
>
>
>     Well, at least it is informative. ;-)
>     It would be great if you can make it a bit more appealing, but
>     visual appearance is not a top priority here I'd say...
>
>
>         -matrixmarket: reconnect the "download & run" functionality now that
>         benchmarking with custom sparse matrices does not crash the program.
>         Also, show the achieved result inside the matrixmarket table.
>         The idea
>         is to make it work like this: you find a nice matrix, hit download &
>         run, the program downloads the matrix,  runs a benchmark with your
>         matrix, and shows the result next the "download&run" button. It
>         would be
>         good if we could avoid switching to the "benchmark" screen during
>         execution, and make it so that users don't need to leave the
>         "matrixmarket" screen at all.
>
>
>     Hmm, I think it is interesting for the user to see which sparse
>     matrix type works best for the particular sparse matrix. Unless we
>     can provide the full results from the 'sparse' tab in the
>     MatrixMarket, I'd rather refrain from it for now.
>
>
>         -some minor "face-lifting" procedures: Qt isn't very friendly
>         when it
>         comes to customizing the looks of widgets. That's why some
>         buttons and
>         tabs might look a bit wrong (depending on your platform). This
>         isn't a
>         significant issue, but still needs to be looked at.
>
>
>     I fixed a couple of these issues by removing hard-wired margins and
>     such. The home screen still has some layout issues, see screenshot.
>
>
>         Well, that's about all I can think of at the moment. As always,
>         you're
>         welcome to comment on these points and/or propose new things to
>         implement.
>
>         P.S. If you would like me to change the visual appearance of
>         certain UI
>         parts, please say so before I start "fixing" those weird buttons and
>         tabs. Even the smallest changes can be a pain when it comes to
>         customizing Qt widgets.
>
>
>     Some more thoughts (some are trivial to fix):
>     - Result tabs: Can these tabs be renamed to "Dense
>     Matrix-Matrix-Products", "Host-Device Copy", "Sparse Matrix-Vector
>     Product", and "Vector Operations", respectively? I tried to do that,
>     but it seems like the current strings have some further meaning for
>     the program control flow (fix this?)?
>
>     - I think it makes more sense for the BLAS 3 benchmark to scan
>     through different matrix sizes, rather than using a fixed size. The
>     benchmark just stops when a kernel run starts to take more than,
>     say, a second. This ensures that the benchmark does not get stuck on
>     mobile hardware, which is far slower than high-end desktop hardware
>     and for which we may not have good kernels yet. I'll take care of this.
>
>     - Results summary: Rather than providing an average, I think that
>     taking the best results makes more sense. For example, for the
>     sparse bench a user is really not interested in how many FLOPs are
>     obtained on average, but how many FLOPs the fastest matrix type
>     provides. Also an easy fix :-)
>
>     The final 'big TODO' is, of course, to provide a reasonably
>     automated packager to ship executables for Windows and Linux. I'm
>     less worried about Linux, because OpenCL can typically be found in a
>     system path. However, getting this to work with Windows might be
>     quite tricky, since a user might have the OpenCL lib installed at
>     whatever path. Either way, I reserved the weekend for this, so we
>     should be able to release early next week. (I can't postpone the
>     release, I'm totally filled with other work until the end of the
>     year then.)
>
>     Best regards,
>     Karli
>
>


------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
ViennaCL-devel mailing list
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel

Reply via email to