Nothing tests better than the real world. These numbers are meaningful on their own but really don't prove anything except for potential. But then you still can't get away from the principle that just by measuring the production of the test, you are also influencing the result to some degree.Ī test only tests what it was designed to test. IE: You could have a card with a screaming GPU and a very slow memory bus that couldn't be tested by this program resulting in extreme tests and yet crappy real world performance.Ī truer test, if possible, would be for the program to have the card display a complex graphic, using many colours and textures/polygons, etc and then time the production of the result. It's a simplistic 'test' that misses the whole performance potential of the card and the ancillary services that make up the card. That is perhaps an 'indication' of future performance but not direct and meaningful 'proof' that one board would be faster than another. It 'tests' nothing but floating point performance. Apple and Intel) and lots of ways to parallel program without OpenCL (to compare to).I was waiting for someone to say this. This field is much wider, as you have different OSes, even different OpenCL SDKs for the same processors (e.g. I intentionally didn't write anything about the other use cases of OpenCL, e.g. So they definitely play in the same league, and even if one is 5% faster than the other for some specific problem at the moment, I thing it would not make a difference in a general view. are you able to make use of all the compute unitsįrom my tests, the answer to these questions - will my code use the hardware optimally - is yes for both frameworks.will the compiler create efficient code.will optimal code use all available memory bandwidth.What remains to be tested are things like: Thread scheduling is done in hardware, so they have the same performance there. Maybe you should approach this problem from another angle: what can you do with one of the frameworks that you can't do with the other? They both use the same drivers, so both will support fancy technologies that come out with new hardware. I dont think that that would be time well spent, though. You could choose a few and compare your results. Section 5 presents and analyzes our results. There are the NVIDIA Code Examples, done in both CUDA and OpenCL. tracting area, energy, and performance numbers for a range of microbenchmarks and compiled application kernels. This is what you ask for, but I don't know anything like that in existence - people will choose either technology for their bigger projects and won't write everything twice. Results will differ, so you would have to have a big test suite. But you won't be able to deduce from that experiment that you'll get similar results on another program, or with different hardware. The problem with benchmarks is obviously that you only can objectively evaluate very specific things - say, the same program done in CUDA and OpenCL, on the same hardware (as you named a source). gpu opencl hdf5 opencl-kernels opencl-benchmarks. Fair warning though, I might get some stuff wrong. toolkitICL: An open source tool for automated OpenCL kernel execution and profiling. Not being a performance/benchmarking expert I can only try to give you a few general thoughts on OpenCL vs. Just to stop speculating about this or that, I'd like to check everything by myself, but I need you to help me! Is there an OpenCL benchmark set, universally accepted, I can use to compare with native code? Is there an analogous of CUDA SDK written in OpenCL code? In the case of Pthread or Windows threads, I really have no idea, but I think that "generality" and multi-architecture approach will always have something to "pay". That is good, ok, but is there a loss of performance by migrating from a native programming library to OpenCL? In the case of nVidia GeForces, I've already found an article were two realizations of the same program - CUDA vs OpenCL code - were compared and the first one seemed to be more performant. OpenCL should be the first parallel architecture programming standard, and it'll be eventually adopted by the most part of programmers. I can read around a lot about OpenCL, and it seems to be the most promising (the only one?) multi-architecture library.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |