Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Sep 21 17:29
    dangkhoasdc starred libmir/mir
  • Sep 12 20:22
    breandan starred libmir/mir
  • Sep 01 03:04
  • Jul 17 02:49
    shikuijie starred libmir/mir
  • Jul 04 06:01
    tastyminerals commented #403
  • Jul 03 07:09
    9il commented #403
  • Jul 03 05:16
    tastyminerals starred libmir/mir
  • Jul 03 05:15
    tastyminerals closed #403
  • Jul 03 05:15
    tastyminerals commented #403
  • Jul 03 05:13
    tastyminerals commented #403
  • Jul 03 05:12
    tastyminerals commented #403
  • Jul 03 04:03
    9il commented #403
  • Jul 03 01:25
    mridsole starred libmir/mir
  • Jul 02 18:29
    tastyminerals edited #403
  • Jul 02 18:29
    tastyminerals opened #403
  • May 29 23:33
    miguelmartin75 starred libmir/mir
  • Apr 26 05:56
    atsushiKojima starred libmir/mir
  • Mar 31 12:30

    9il on master

    Update README.md (compare)

  • Mar 30 06:00

    9il on v3.2.1

    (compare)

  • Mar 30 06:00

    9il on master

    fix meson (compare)

Mathias L. Baumann
@Marenz
I mean, a Slice is a struct referencing some external data. Is that data modified by universal()? the docu isn't very clear here
My use case is when using gemm from mir-glas. It requires the SliceKind.universal but all I have is contiguous, so my solution so far was to just do gemm(1.0f, m1.universal, m2.universal, 0.0f, tmp_result.universal);
but i am not very faithful in my solution
especially when using m1 afterwards
Ilya Yaroshenko
@9il
Hi @Marenz , universal as well as other contents of topology does not modify the data. universal just returns a slice of Universal kind with the same strides and shapes. The difference is only in kind.
Mathias L. Baumann
@Marenz
thank you for that info :)
I still haven't figured out all those details
Mind if I create PRs that add what you just told me?
for the docu
Ilya Yaroshenko
@9il
Sure, hope you will improve English
Mathias L. Baumann
@Marenz
I didn't notice any weird English so far. But when I do I'll fix it
btw, I wrote my own mtimes() now that works like the one in lubeck but uses mir-glas and also expects an allocator to be passed
That way I can use e.g. the Region allocator for loops to reuse the memory
Ilya Yaroshenko
@9il
:+1:
Nicholas Wilson
@thewilsonator
@Marenz you should make alignment an enum, it doesn't change.
Nicholas Wilson
@thewilsonator
First set of docs for dcompute: libmir/dcompute#37
Mathias L. Baumann
@Marenz
I am trying to port a python example for a neural net with a hidden layer to D2/mir
And.. everything seems to be working, only that it.. doesn't
As far as I can tell, my code is identical
It's a lot to ask to compare those and get feedback on the code, so I understand if you feel like you don't want to ;)-
I just thought I try asking here because I am a bit out of ideas currently
Ilya Yaroshenko
@9il
Hi Mathias,
I would suggest to do step by step verification. It is common for SCI code to do so.
After quick review i found one small bug (but there may be also others): Random gen is not initialized.
You may want to use https://github.com/libmir/mir-random as wall as https://github.com/libmir/numir to generate random slices. Mir Random has default contrcuttor disabled for RNGs, so it is safer then Phobos.
Mathias L. Baumann
@Marenz
it actually is, here: https://github.com/Marenz/neural_net_examples/blob/master/lstm/source/app.d#L64 if you mean seed when you say initialized?
I tried to construct it in a way that it matches the random numbers generated in python
I got surprisingly close
to see where it starts diverging
but there was no clear point
Ilya Yaroshenko
@9il
Ah, ok. BTW keep in mind that gen is TLS variable
Mathias L. Baumann
@Marenz
I don't plan on more threads yet :)
Francis Nixon
@pirocks
Hello. I'm having trouble compiling dcompute on debian 9. My dub.json looks like this:
{
    "name": "compute-messing-around",
    "authors": [
        "Francis Nixon"
    ],
    "description": "A minimal D application.",
    "license": "proprietary",
    "dependencies": {
        "dcompute": "~>0.1.0"
    },
    "dflags": ["-mdcompute-targets=ocl-210,cuda-350","-oq"]
}
The error I'm currently getting is:
../../.dub/packages/dcompute-0.1.0/dcompute/source/dcompute/driver/error.d(143,13): Error: undefined identifier `fprintf`
../../.dub/packages/dcompute-0.1.0/dcompute/source/dcompute/driver/ocl/context.d(144,19): Error: undefined identifier `clCreateProgramWithIL`
Nicholas Wilson
@thewilsonator
Thats embarrassing. libmir/dcompute@cee8eb3
I'm not sure why your clCreateProgramWithIL can't be found. Are you using an up to date DerelictCL?
Francis Nixon
@pirocks
The clCreateProgramWithIL error went away after manually selecting the most recent version of DerelictCL. I then got an error in the same place as the fprintf error, except for toStringz. Adding an import fixed that, but now I'm getting the following:
../../.dub/packages/dcompute-0.1.0/dcompute/source/dcompute/driver/error.d(139,32): Error: cannot implicitly convert expression `__lambda1` of type `void delegate(Status _status) @system` to `immutable(void delegate(Status) nothrow @nogc)`
../../.dub/packages/dcompute-0.1.0/dcompute/source/dcompute/driver/error.d(139,32): Error: cannot implicitly convert expression `__lambda1` of type `void delegate(Status _status) @system` to `immutable(void delegate(Status) nothrow @nogc)`
Nicholas Wilson
@thewilsonator
Hmm, that does seem odd, but that's my fault for not testing it properly.
Francis Nixon
@pirocks
If relevant my ldc version is:
LDC - the LLVM D compiler (1.7.0git-958e58c):
  based on DMD v2.077.1 and LLVM 3.8.1
  built with DMD64 D Compiler v2.077.1
  Default target: x86_64-pc-linux-gnu
  Host CPU: broadwell
Nicholas Wilson
@thewilsonator
Unless you have need to use the D_betterC version try without it. That should "work" (note the @BUG@ just above). You will need to set onDriverError yourself because of it, see e.g.
Thats not a compiler problem, thats me not testing properly. I really need to set up CI, but given the hardware required I haven't got around to it yet.
Thanks for pointing out the issues.
Francis Nixon
@pirocks
Without -betterC I get:
Invalid bitcast
  %3 = bitcast float addrspace(1)* %res_arg to float*
Invalid bitcast
  %5 = bitcast float addrspace(1)* %x_arg to float*
Invalid bitcast
  %9 = bitcast float addrspace(1)* %y_arg to float*
LLVM ERROR: Broken function found, compilation aborted!
Nicholas Wilson
@thewilsonator
Hmm, can you try with an LLVM that is 3.9 or greater (e.g. from the LDC release page)?
Also what registered targets does the LDC you are using have (just below the output of ldc2 --version you posted)?
Sebastian Wilzbach
@wilzbach
I have two good news:
1) libmir/mir-algorithm#122 - examples on the mir docs will be runnable soon (see http://files.wilzbach.me/dlang/mir-algorithm/mir_ndslice_algorithm.html)
2) https://tour.dlang.org/tour/en/dub/mir - the tour will be finally moving to integrate mir (thought writing a good one-page summary might turn out to be challenging)
Ilya Yaroshenko
@9il
Some news:
PR "Tarjan graph algorithm" libmir/mir-algorithm#121
Issue "ndslice based API for dopt" henrygouk/dopt#6
Issue "Dcompute based backend for dopt" henrygouk/dopt#6
Ilya Yaroshenko
@9il
EDIT: Issue "ndslice based API for dopt" henrygouk/dopt#7
Ilya Yaroshenko
@9il