cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

nberger
Adept I

SDK 1.3 Feedback

Quick question on the .error() workaround: If I have multiple output streams, do I have to call .error() on all of them?
Thanks
Nik
0 Likes
gaurav_garg
Adept I

SDK 1.3 Feedback

Calling it on any one output stream is fine.

0 Likes
nberger
Adept I

SDK 1.3 Feedback

Thanks for the quick answer. Now things are working fine...
0 Likes
Jetto
Journeyman III

SDK 1.3 Feedback

Hello,

I try to SDK on Ubuntu 8.10 amd64 on a Q6600 HD 4850 512MB.

I use standard libxcb-xlib so I have the annoying "locking assertion failure" backtrace.

I have some timing result of brook+ sample code that not looks like consistent:

$ ./mandelbrot -p -q
Width   Height  Iterations      CPU Total Time  GPU Total Time  Speedup        
64      64      1               0.000000        0.010000        0.000000

oops CPU is faster

$ ./mandelbrot -p -q -i 1000 2>/dev/null
Width   Height  Iterations      CPU Total Time  GPU Total Time  Speedup        
64      64      1000            0.105000        0.313000        0.335463

humm CPU is still faster

./mandelbrot -p -q -i 10000 2>/dev/null
Width   Height  Iterations      CPU Total Time  GPU Total Time  Speedup        
64      64      10000           1.045000        23.088000       0.045262

OMG how can we explain that ?

If use larger matrix it's better

$ ./mandelbrot -p -x 1024 -y 1024 -q.
Width   Height  Iterations      CPU Total Time  GPU Total Time  Speedup        
1024    1024    1               0.023000        0.010000        2.300000

This is ok but

$  ./mandelbrot -p -x 8192 -y 8192 -i 10 -q
Width   Height  Iterations      CPU Total Time  GPU Total Time  Speedup        
8192    8192    10              14.849000       0.001000        14849.000000

GPU became 100 time faster !

./mandelbrot -e -p -x 8192 -y 8192 -i 1 -q
-e Verify correct output.
Computing Mandelbrot set on CPU ... Done
./mandelbrot: Failed!

Humm maybe the matrix is too big

I use binary from the sdk and do not try to compile.

BR.

0 Likes
Jetto
Journeyman III

bug in haar_wavelet ?

 /usr/local/amdbrook/samples/bin/legacy/lnx_x86_64/haar_wavelet  -e -i 2 -t -p -q 2>/dev/null
Width   Height  Iterations      GPU Total Time 
64      64      2               0.031000       

-e Verify correct output.
Computing Haar Wavelet Transform on CPU ... Done
/usr/local/amdbrook/samples/bin/legacy/lnx_x86_64/haar_wavelet: Failed!

-p Compare performance with CPU.
Width   Height  Iterations      CPU Total Time  GPU Total Time  Speedup        
64      64      2               0.000000        0.031000        0.000000

It's ok with -i 1

0 Likes
gaurav_garg
Adept I

SDK 1.3 Feedback

 

$  ./mandelbrot -p -x 8192 -y 8192 -i 10 -q Width   Height  Iterations      CPU Total Time  GPU Total Time  Speedup         8192    8192    10              14.849000       0.001000        14849.000000

 

GPU became 100 time faster !

 

./mandelbrot -e -p -x 8192 -y 8192 -i 1 -q -e Verify correct output. Computing Mandelbrot set on CPU ... Done ./mandelbrot: Failed!

 

Humm maybe the matrix is too big

 

I think you are running examples coming with legacy folder. Try running CPP samples. They have error checking on streams and in case Brook+ is not able to allocate stream on GPU, it will show an error rather than showing these false numbers.

0 Likes
zpdixon
Journeyman III

SDK 1.3 Feedback

I noticed that dcl_resource_id(...) statements that are commented out in IL kernels are actually *interpreted* by the CAL compiler. How to reproduce: write a kernel with a commented out dcl_resource statement, and run calCtxRunProgram() without defining i0:

; dcl_resource_id(0)_type(2d,unnorm)_fmtx(float)_fmty(float)_fmtz(float)_fmtw(float)

Notice how calCtxRunProgram() will return an error "Symbol "i0" used as INPUT does not have a memory association.".

Another bug: calGetErrorString() returns strings that are prematurely truncated. For example while debugging the above problem, for me printf("[%s]", calGetErrorString()) was displaying

[Symbol "]

After dumping the memory around that string, I noticed that it was actually

[Symbol "\x00i0\x00" used as \x00INPUT\x00 does not have a memory association.]

with 4 NUL bytes around "i0" and "INPUT". My platform is 64-bit linux if that matters...

 

0 Likes
gaurav_garg
Adept I

SDK 1.3 Feedback

CAL compiler interprets dcl_resource implicitly if there is any sampling instruction is used. Comment out sampling instruction as well and it should not give an error for symbol "i0".

0 Likes
zpdixon
Journeyman III

SDK 1.3 Feedback

There was no sampling instruction in my test case. I still got an error for symbol "i0".
0 Likes