Bug report:
SDK 1.2, Brook+
Catalyst 8.8
HD 4850
Linux 64 bit (openSuSE 10.3, Athlon X2)
As discussed in the thread (with code example)
http://forums.amd.com/devforum/messageview.cfm?catid=328&threadid=99991
repeated invocation of a reduction kernel results in a segementation fault (at least for HD4850 & Linux 64)
edit: Ok, its not a bug; I didn't realize that the length of the output stream for a reduction kernel has to match the length of the input stream. However, I think reduction is not so useful in this case ... Thus:
Feature request:
- Reduction of a 1D stream to a _real_ single value
Feature Requests
- calMemCopy for domains.
- Write Query and Write Mask interfaces for CAL (similar to the GPU backends for Brook+, as seen in the source code).
Documentation
- persistent (reduction) buffers, scratch buffers
- additional documentation for CAL extensions
Feature request Description here http://forums.amd.com/devforum/messageview.cfm?catid=328&threadid=100614&enterthread=y
Hello!
I have Radeon 3650. This card is support AMD Stream?
Thanks!
(Sorry for my english)
Yadovit. yes it is supported.
Question Can I use Open Solaris with streamcomputing sdk if I can make it runing ati driver.
Bug Report
It would be nice if the sdk detects if the current graphics card is not supported by cal (I tested it with a x700 on Linux):
$ ./bin/lnx32/FindNumDevices
XIO: fatal IO error 0 (Success) on X server ":0.1"
after 9 requests (9 known processed) with 0 events remaining.
With DISPLAY=:0.0 I get the same result. If I unset DISPLAY the tool FindNumDevices works correctly:
$ DISPLAY= ./bin/lnx32/FindNumDevices
CAL initialized.
Finding out number of devices :-
Device Count = 0
CAL shutdown successful.
Press enter to exit...
Greetings from Hamburg
Originally posted by: MicahVillmow
Ryta, this is possible via the C++ interface that is generated after your source code is run through brcc.
Hi Guys,
Seems that there are a lot of questions left unanswered on this forum.
I strongly would like to suggest to our friend at AMD to be more present on the forum and to provide adequate answers/hints to issues raised.
The point is that definitively Brook+ is still far from being a professional grade environment.
Anyway, there are enough motivated beta testers here that trust Brook is worth spending some time understanding it and developing advanced programs on GPU.
So please AMD, show your dedication to Brook by allocating more interest to feedback and questions from your early users.
Thanks.
Jean-Claude
Originally posted by: Ceq Hi ryta, about freeing streams I think this could be useful: Since Brook+ ignores preprocessor commands you can easily take advantage of it to avoid editing the generated file: #define streamFree(_stream) _stream.~stream(); And now you can type in your code: streamFree(streamName); The same trick could be used in other situations since BRCC doesn't complain about undefined functions
Ceq,
ugh, that looks a bit scary what you are doing there. If you destruct a stream by calling the ~stream() destructor, then it will get destructed a second time when the stream gets out of scope, with possibly undefined behavior. Well, if it works...
Why you do not develop and do not promote AMD Stream as CUDA? In internet information on exit SDK and devices only. But article interesting no.
QUESTION What hapens to domain of execution on "mov o0, r1 ret_dyn" - will there any value for that thread ? QUESTION 2 : How much output registrs 0
why when I use brook+ 1.21 got a strange behavior, finally, I find it like below, when I try to use twice GPU:
/////////////////////////////////////////////////////////////////////////
// Brook code block
/////////////////////////////////////////////////////////////////////////
{
float inputStream<Length>;
float outputStream<Length>;
float res<1>;
streamRead(inputStream, input);
hello_brook_check(inputStream, outputStream, (float)Length / 3.0f);
hello_brook_sum(outputStream, res);
streamWrite(res, &result);
}
/////////////////////////////////////////////////////////////////////////
// Brook code block
/////////////////////////////////////////////////////////////////////////
{
float inputStream1<Length>;
float outputStream1<Length>;
float res1<1>;
streamRead(inputStream1, input);
hello_brook_check(inputStream1, outputStream1, (float)Length / 3.0f);
hello_brook_sum(outputStream1, res1);
streamWrite(res1, &result);
}
the programm will halt at "hello_brook_check(inputStream1, outputStream1, (float)Length / 3.0f);" and give error message " unhandled exception at .....".
but if I use it like:
/////////////////////////////////////////////////////////////////////////
// Brook code block
/////////////////////////////////////////////////////////////////////////
float inputStream1<Length>;
float outputStream1<Length>;
float res1<1>;
{
float inputStream<Length>;
float outputStream<Length>;
float res<1>;
streamRead(inputStream, input);
hello_brook_check(inputStream, outputStream, (float)Length / 3.0f);
hello_brook_sum(outputStream, res);
streamWrite(res, &result);
}
/////////////////////////////////////////////////////////////////////////
// Brook code block
/////////////////////////////////////////////////////////////////////////
{
streamRead(inputStream1, input);
hello_brook_check(inputStream1, outputStream1, (float)Length / 3.0f);
hello_brook_sum(outputStream1, res1);
streamWrite(res1, &result);
}
There will be no error, program will run correctly.
Is there anybody know what happen here?
feature request HLSL extension in AMDhlslCompiler - gather or random read via global buffer. Not critical, but likely/
Oops, I've made a mistake - gather!=read it's random write, but I know that random read in HLSL = texture.sample(coord). Can't you provide any samples or give me a link to it ? Thank, you.
Could I type code like that in GPUShaderAnalizer ? Will it only work on R670+ gpus ?
And if you are here right now please answer to following questions: 1) can I estimate gpu load parameter just like catalist does, and how ?(under linux and windows) 2) Can I use streamcomputing sdk under Sun Solaris 10 if linux driver properly working 3 ) can't you provide gpu analizer lib for linux ?
THANK YOU MICAH! Do you mean that Catalis Control Center Overdrive (or simply overclocking) panel performance counter calculates ALU/TEX ratio ? I saw gpu load monitoring in other programs(rivatuner) and thought that there is some standart interfase to get gpu load, for exemple I can run my cal application and look to that perf. counter. And all that dinamicaly, I've sent email to rivatuner author, but again I thought there must be standart interface to get gpu load characteristic.
Feature Request
A blocking version of calCtxIsEventDone would be nice (without busy wait).
Cheers,
L
Pls, unlock security in the PDF. It's a P.A.I.N to remember all the error codes, function names, etc.
Originally posted by: MicahVillmow bubu, Can you expand on what exactly you mean here, thanks?
Somebody there had the wonderful idea of copy-protecting the: Stream_Computing_User_Guide.pdf ( rev.1.2.1)
R600isa.pdf(rev 0.31)
Intermediate_Language_Specification--Stream_Processor.pdf(v2.0)
... so you cannot copy(for copy-paste) the example code and neither the functions names and C constants/flags...
I was starting to learn CAL functions... I wanted to copy the CAL_RESALLOC_CACHED flag from there to my code.... but I cannot copy due to the security restrictions on the PDF. Also I tried to copy the Cal-init example on page 3-9 ... but I cannot because it's copy protected...
That's what I'm referring to... and that protection is ridiculous... because if I can print the document I can perform an OCR... or to download a PDF crack tool from noob secutiry web pages... So, pls, remote that protection or DRM.