Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

Flam4 OpenCL Tech Preview Released

Keldor
2010-02-07
2013-04-22
  • Keldor
    Keldor
    2010-02-07

    Flam4 now works on OpenCL!!

    Well, kinda…

    There are still a great many limitations to the OpenCL version (see the readme) not existant in the Cuda version, and let's not even mention that OpenCL is slower and rather unstable currently.

    Still, the OpenCL version adds the ability to define custom variations, as well as rendering 3D flames!  If you're feeling adventurous, and don't mind the command line interface, give it a shot and see what you can come up with!

    Get it from Files, in the Flam4OCL folder.

     
  • Keldor
    Keldor
    2010-02-07

    I forgot to mention, you'll need up to date drivers, .NET 3.5, and the F# CTP to run flam4OCL.

     
  • I can't make it run on Linux. Some help? I don't know anything about mono and .net.
    It is complaining about a missing FSharp.Core assembly. A quick Google seach turned out that I need the packages libmono-winforms2.0-cil libmono-system-runtime2.0-cil and libmono-tools-*, I installed them but no joy. Here the full output:

    agustin@DosPunto0:~/bin/src/flam4OCL10$ ./flam4OCL_Frontend.exe 
    ** (./flam4OCL_Frontend.exe:3385): WARNING **: The following assembly referenced from /home/agustin/bin/src/flam4OCL10/flam4OCL_Frontend.exe could not be loaded:
         Assembly:   FSharp.Core    (assemblyref_index=1)
         Version:    2.0.0.0
         Public Key: b03f5f7f11d50a3a
    The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (/home/agustin/bin/src/flam4OCL10/).
    ** (./flam4OCL_Frontend.exe:3385): WARNING **: Could not load file or assembly 'FSharp.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
    ** (./flam4OCL_Frontend.exe:3385): WARNING **: Missing method .ctor in assembly /home/agustin/bin/src/flam4OCL10/flam4OCL_Frontend.exe, type Microsoft.FSharp.Core.EntryPointAttribute
    ** (./flam4OCL_Frontend.exe:3385): WARNING **: Can't find custom attr constructor image: /home/agustin/bin/src/flam4OCL10/flam4OCL_Frontend.exe mtoken: 0x0a000043
    Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'FSharp.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
    File name: 'FSharp.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
    

    What am I missing?

    Keep up the great job on flam4!

    Thanks, Agustín Dall'Alba

    PS: Please include a readme or install instructions with the linux package.

     
  • Keldor
    Keldor
    2010-03-30

    You need to install the F# runtime, here: http://www.microsoft.com/downloads/details.aspx?FamilyID=ba52e650-4e77-4b0b-b987-9f9ecd3bab3b&displaylang=en

    The zip file should include instructions for how to install it on crossplatform/mono systems, such as Linux.  Basically it amounts to running a setup script.  After that, you'll probably have to track down libopencl.so (or something similar - don't remember the exact name) and either copy it to the flam4 directory, or else edit Cloo.dll.config to point to it in whatever the system path is.  On Windows at least, OpenCL is included with the display drivers, so start there…

    I don't have a Linux system to test on, so you're more or less on your own for the specifics of getting it to work, but I have gotten it to run with Mono under OSX, so it Really Should Work(TM) on a Linux system once everything is configured properly.

     
  • It was easy. All I had to do is to put the zip's bin folder in my MONO_PATH variable and export it. It also works when the contents of .zip/bin/gac folder are alongside flam4OCL.exe. You should include that it you don't have space (15MiB uncompressed, 3MiB with 7z) or legal problems.

    Unfortunately I couldn't render the three electric sheep I tried. Also when trying to render the sheep #11146 ( http://v2d7c.sheepserver.net/cgi/node?id=11146 )  it gives me all this output: http://pastie.org/895690 . In all the sheep it keeps doing nothing. gdb (a debugger) gives me "0x00007f94b6238b50 in sem_wait () from /lib/libpthread.so.0"

    May I file this as a bug, or it's my fault?
    Thank you again,
      - Agustín Dall'Alba

     
  • Keldor
    Keldor
    2010-03-31

    That's a known bug - apparently naming a var "cross" collides with some OpenCL builtin function, resulting in it failing to compile.

    Anyhow, I've fixed it for the next release, which I intend to release once I've tested all 97 or whatever flam3 variations.  :-)

    What happens when you try to render the other two sheep?

     
  • Keldor
    Keldor
    2010-03-31

    Another thing is that that particular sheep uses post transforms, which I haven't gotten around to handling yet.

     
  • Keldor
    Keldor
    2010-03-31

    Check out version 0.11.  It renders that flame correctly.