Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.math.mathematica

Topic: memory leak with Cuda
Replies: 1   Last Post: Apr 26, 2014 2:07 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
gebe13@neuf.fr

Posts: 3
Registered: 6/24/13
memory leak with Cuda
Posted: Jun 24, 2013 3:52 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

Here is an application of Wolfram white paper (Heterogeneous Computing in Mathematica page 16 and 17). After several cursor movement program stops because of a memory leak. How to fix it please?

Julia set with CUDA

Needs["CUDALink`"]

code = "
__global__ void julia_kernel(Real_t * set, int width, int height, Real_t \
cx, Real_t cy) {
int xIndex = threadIdx.x + blockIdx.x*blockDim.x;
int yIndex = threadIdx.y + blockIdx.y*blockDim.y;
int ii;
Real_t x = ZOOM_LEVEL*(width/2 - xIndex);
Real_t y = ZOOM_LEVEL*(height/2 - yIndex);
Real_t tmp;
Real_t c;
if (xIndex < width && yIndex < height) {
for (ii = 0; ii < MAX_ITERATIONS && x*x + y*y < BAILOUT; ii++) {
tmp = x*x - y*y + cx;
y = 2*x*y + cy;
x = tmp;
}
c = log(0.1f + sqrt(x*x + y*y));
set[xIndex + yIndex*width] = c;
}
}";

JuliaCalculate =
CUDAFunctionLoad[code,
"julia_kernel", {{_Real, "Output"}, _Integer, _Integer, _Real, _Real}, {16,
16}, "Defines" -> {"MAX_ITERATIONS" -> 10, "ZOOM_LEVEL" -> "0.0050",
"BAILOUT" -> "4.0"}];

{width, height} = {512, 512};
jset = CUDAMemoryAllocate[Real, {height, width}];

Manipulate[
JuliaCalculate[jset, width, height, c[[1]], c[[2]], {width, height}];
ReliefPlot[Reverse@CUDAMemoryGet[jset], ColorFunction -> "Rainbow",
DataRange -> {{-2.0, 2.0}, {-2.0, 2.0}}, ImageSize -> 512, Frame -> None,
Epilog -> {Opacity[.5], Dashed, Thick,
Line[{{{c[[1]], -2}, {c[[1]], 2}}, {{-2, c[[2]]}, {2,
c[[2]]}}}]}], {{c, {0, 1}}, {-2, -2}, {2, 2}, Locator,
Appearance ->
Graphics[{Thick, Dashed, Opacity[.75], Circle[]}, ImageSize -> 50]}]


General::nomem: The current computation was aborted because there was insufficient memory available to complete the computation.




Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.