Hey Renato,<div><br></div><div>Cool, glad you got it working.</div><div><br></div><div>There is very primitive support for tests that generate multiple output results, but I would rather not use those facilities.</div><div>
<br></div><div>Is it possible instead to refactor the tests so that each binary corresponds to one test? For example, look at how Hal went about integrating TSVC:</div><div>  <a href="http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Benchmarks/TSVC/">http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Benchmarks/TSVC/</a></div>
<div>It isn't particularly pretty, but it fits well with the other parts of the test suite infrastructure, and probably works out nicer in practice when tests fail (i.e., you don't want to be staring at a broken bitcode with 24 kernels in one function).</div>
<div><br></div><div>Other things that I would *like* before integrating it:</div><div> - Rip out the CPU ID stuff, this isn't useful and adds messiness.</div><div> - Have the test just produce output that can be compared, instead of including its own check routines</div>
<div> - Have the tests run for fixed iterations, instead of doing their own adaptive run</div><div> - Produce reference output files, so it works with USE_REFERENCE_OUTPUT=1</div><div><br></div><div>The kernels themselves are really trivial, so it would be ideal if it was split up to be one-test-per file with minimal other stuff in the test other than setup and output.</div>
<div><br></div><div> - Daniel</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Nov 6, 2012 at 1:53 PM, Renato Golin <span dir="ltr"><<a href="mailto:rengolin@systemcall.org" target="_blank">rengolin@systemcall.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Ok, I got the benchmark to work on test-suite, but it's not printing<br>
details for each run (or execution wouldn't work). I had to comment<br>
out the printf lines, but nothing more than that.<br>
<br>
I'm not sure how individual timings would have to be extracted, but<br>
the program produces output via text file, which can be used for<br>
comparison. Also, it does check the results and does report if they<br>
were as expected (not sure yet how that's calculated in detail).<br>
Nevertheless, should be good to have this test, at least to make sure<br>
we're not breaking floating point loops with vectorization in the<br>
future.<br>
<br>
Attached is a tar ball with the contents of LivermoreLoops to be<br>
included inside test-suite/SingleSource/Benchmarks. Daniel, can I just<br>
add this to the SVN repository, or are there other things that need to<br>
be done as well? It might need some care to fully use the testing<br>
infrastructure, though.<br>
<br>
cheers,<br>
--renato<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
On 5 November 2012 22:12, Nadav Rotem <<a href="mailto:nrotem@apple.com">nrotem@apple.com</a>> wrote:<br>
> That would be great!<br>
><br>
> On Nov 5, 2012, at 2:11 PM, Renato Golin <<a href="mailto:rengolin@systemcall.org">rengolin@systemcall.org</a>> wrote:<br>
><br>
>> On 5 November 2012 17:41, Nadav Rotem <<a href="mailto:nrotem@apple.com">nrotem@apple.com</a>> wrote:<br>
>>> 1. We do not allow reductions on floating point types.  We should allow them when unsafe-math is used.<br>
>>> 2. All of the arrays are located in a struct. At the moment we don't detect that these arrays are disjoin, and this prevents vectorization.<br>
>><br>
>> Indeed, they look like simple changes. If no one is dying to get them<br>
>> working, I suggest I try these first.<br>
>><br>
>> I'll first get the tests running in the test-suite, than I'll try to<br>
>> vectorize them.<br>
>><br>
>> --<br>
>> cheers,<br>
>> --renato<br>
>><br>
>> <a href="http://systemcall.org/" target="_blank">http://systemcall.org/</a><br>
><br>
<br>
<br>
<br>
--<br>
cheers,<br>
--renato<br>
<br>
<a href="http://systemcall.org/" target="_blank">http://systemcall.org/</a><br>
</div></div></blockquote></div><br></div>