Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Apr 09 07:58
    DingXiangYuanZhiXing starred libmir/mir
  • Feb 24 07:46
    rillk500 starred libmir/mir
  • Nov 17 2020 07:14
    aminya starred libmir/mir
  • Nov 17 2020 01:23
    wrmsr starred libmir/mir
  • Nov 15 2020 09:37

    9il on v3.2.2

    (compare)

  • Nov 15 2020 08:44

    9il on master

    update gitignore (compare)

  • Sep 21 2020 17:29
    dangkhoasdc starred libmir/mir
  • Sep 12 2020 20:22
    breandan starred libmir/mir
  • Sep 01 2020 03:04
  • Jul 17 2020 02:49
    shikuijie starred libmir/mir
  • Jul 04 2020 06:01
    tastyminerals commented #403
  • Jul 03 2020 07:09
    9il commented #403
  • Jul 03 2020 05:16
    tastyminerals starred libmir/mir
  • Jul 03 2020 05:15
    tastyminerals closed #403
  • Jul 03 2020 05:15
    tastyminerals commented #403
  • Jul 03 2020 05:13
    tastyminerals commented #403
  • Jul 03 2020 05:12
    tastyminerals commented #403
  • Jul 03 2020 04:03
    9il commented #403
  • Jul 03 2020 01:25
    mridsole starred libmir/mir
  • Jul 02 2020 18:29
    tastyminerals edited #403
Andrew Benton
@andrewbenton
Are you thinking about having a demo dub project for people to play with?
Nicholas Wilson
@thewilsonator
That is a possibility
Nicholas Wilson
@thewilsonator
int main(string[] args)
{
    auto platform = Platform.getPlatforms(theAllocator)[0];
    auto devices  = platform.getDevices(theAllocator);
    auto plist    = propertyList!(Context.Properties)(Context.Properties.platform);
    auto context  = Context(devices,plist);
    Program.globalProgram = context.createProgramFromBinary(devices,readBinaryFromDisk());
    auto queue    = context.createQueue(devices[0],Queue.Properties.outOfOrderExecution);
    auto data     = somedata();
    auto buf      = context.createBuffer!(float)(Memory.Flags.none,data);
    Event e = queue.enqueue!(saxpy)([5])(buf,buf,42.0);
    e.wait();
    return 0;
}
OpenCL 1.2 API is here! libmir/dcompute#21
There are still some things left to do, but I found a quite nice (comparatively anyway) to do the getInfo calls. I'm sure that it will work but it compiles at least.
Nicholas Wilson
@thewilsonator
@John-Colvin if you're reviewing I'd just ignore the deletions. I might merge this as is so that others can work on it as well. My head is spinning from trying to reason with the OpenCL API, metaprogramming and staring at a screen too long. I now fully understand https://github.com/John-Colvin/clWrap/blob/master/level2/clwrap/l2/info.d#L294
Jakob Bornecrantz
@Wallbraker
@thewilsonator Okay thanks, I was more thinking about what's needed to upstream the SPRIV backend(s?). And if there is anything I can help with doing that.
Nicholas Wilson
@thewilsonator
@Wallbraker I think its mostly "political", see this for the full thread. There is now three backends, mine, KhronosGroup's and Codeplay's and I'm trying to convince everyone to collaborate. If you're interested, the TableGen backend is the next thing that needs doing, but I'm going to wait and see if I can convince someone else to do it for me ;) (either you or authors of the other SPIR-V backends). It it alas rather boring work, although thrilling in comparison to writing the tablegen desctriptions.
Jakob Bornecrantz
@Wallbraker
@thewilsonator So they have basically said no no-tabelgen backend will go in?
Or was that just some loud people who have no influence?
Nicholas Wilson
@thewilsonator
That zealotry, if its the one I assume you're talking about, was about not accepting a non MI/legalised backend because that would force them to not break IR compatibly with the rest of the backends(?), I dont really under stand that either. However they did relent and decided that IR -> SPIR-V is the only viable approach.
_I_ want a tabelgen backend so that intrinsics work and so I can get Windows to work without having to use pragma(mangle, "...") on all the OpenCL declarations.
Jakob Bornecrantz
@Wallbraker
Okay, I don't know that much about LLVM internals as I am a frontend writer.
Just wondering if I should have written a angry letter telling them to get thier shit together
Nicholas Wilson
@thewilsonator
A few of those emails were rather circular, lol.
It's probably best to focus effort on dcompute as the ROI is much higher.
While it is annoying to maintain my own backend it is doable.
When I go to IWOCL next may I'll push as hard as I can to get this sorted out once and for all.
Jakob Bornecrantz
@Wallbraker
Thanks, I'm working on a different frontend then DCompute. Just sad to see your work go to "waste" sitting in a branch, that I and a lot of other people could use.
Nicholas Wilson
@thewilsonator
Oh, there are other people using my backend see thewilsonator/llvm-target-spirv#1
but it would be nice not to have to recompile and upload a release every time LLVM trunk breaks LDC compatibility.
not to mention the amount of havoc I must be causing for downstream users of my fork.
Jakob Bornecrantz
@Wallbraker
Yeah exactly. I'm a C API user so that's not a big deal for me, just I want to be able to point users to the latest LLVM release and tell the to use that.
Nicholas Wilson
@thewilsonator
I suppose thats not quite so bad, but I imagine it must not be very fun to be trying to juggle clang trunk on top of that.
Jakob Bornecrantz
@Wallbraker
Even better not using clang, frontend is written in D :)
Nicholas Wilson
@thewilsonator
Ah I see you have a complier for a different programming language. I saw the D projects in your profile got very confused for a moment ;)
Oh well best of luck on your frontend, and I'll see if I can get the different SPIR-V backends to unite and get included in LLVM.
Jakob Bornecrantz
@Wallbraker
Thanks! And I hope I can help out in that process in some form :)
Sebastian Wilzbach
@wilzbach
Hey everyone, while it's very alpha & we haven't announced it yet, run.dlang.io now supports DUB packages :tada:
As this was requested and for mir, I thought I let you know first.
Examples:
Prasun Anand
@prasunanand
Hey everyone, while it's very alpha & we haven't announced it yet, run.dlang.io now supports DUB packages :tada:
:+1:
Nicholas Wilson
@thewilsonator
Hi all, just to let you know, I've almost finished adding LLVM's Polly optimisation to LDC, tiling vectorising and parallelising loops that only have computations of indices and data. This is still very experimental and unless you are using my SPIR-V release of LLVM (OS X) you'll need to compile LLVM and Polly yourself.
Ilya Yaroshenko
@9il
Hi all, cost and immutble ndslices has opIndex primitive now
struct Foo
{
    ContiguousSlice!(1, int) bar;

    int get(size_t i) immutable
    {
        return bar[i];
    }

    int get(size_t i) const
    {
        return bar[i];
    }
}
Petar Kirov
@PetarKirov
@9il why not use inout?
Ilya Yaroshenko
@9il
inout works in this example too
in addition, inout is buggy for struct methods
Petar Kirov
@PetarKirov
No, I was wondering why you didn't use inout for the implementation.
Do you have any examples where it is buggy?
So far I haven't had problems using it in my projects (after I learned how to use it correctly).
Ilya Yaroshenko
@9il
Yes, it is buggy for implementation. There is two opIndex function that are marked with const / immutable. Try to replacr them with single one. The problem is that compiler do not understand that struct is input itself.
So, compiler ask to a inout param
Petar Kirov
@PetarKirov
I don't have a computer handy at the moment, but I'll try to check in a couple of days
Olzhas Adiyatov
@olzhas
hey everyone,
I wonder if you have a plotting library
and if there is a need in one with a matlab like syntax
Nicholas Wilson
@thewilsonator
@olzhas see https://github.com/BlackEdder/ggplotd http://code.dlang.org/search?q=plot for plotting libraries. We don't have one yet for mir.
Nicholas Wilson
@thewilsonator
I got the first dcompute kernels to run successfully! https://forum.dlang.org/post/smrnykcwpllukwtlfzxg@forum.dlang.org
Andrew Benton
@andrewbenton
The dcompute kernels are awesome! Nice work with those!
Ilya Yaroshenko
@9il
Thank you @thewilsonator !