by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 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)

  • Mar 30 05:54

    9il on master

    update readme (compare)

  • Mar 30 05:53

    9il on master

    add meson & update ci (compare)

  • Jan 27 17:48
    zweimach starred libmir/mir
  • Dec 27 2019 17:00
    chapman2014 starred libmir/mir
  • Nov 25 2019 15:06
    BeardedBeaver starred libmir/mir
  • Nov 20 2019 02:28
    JeffCarpenter starred libmir/mir
  • Nov 13 2019 12:10
    J5ive starred libmir/mir
  • Oct 02 2019 07:06
    stevefan1999-personal starred libmir/mir
  • Sep 06 2019 09:09
    9il commented #402
  • Sep 05 2019 19:35
    mlabayru closed #402
  • Sep 05 2019 19:35
    mlabayru commented #402
  • Sep 05 2019 16:23
    9il commented #402
  • Sep 05 2019 16:23
    9il commented #402
  • Sep 05 2019 12:59
    mlabayru opened #402
  • Aug 08 2019 03:06
    liummistaken starred libmir/mir
Mathias L. Baumann
@Marenz
ah.. it seems mir-glas' dub file is hard coding quite a lot of things
Mathias L. Baumann
@Marenz
This is all a bit confusing really
lubeck says it requires blas, cblas and lapack as static libraries.. which confused me as I thought it would be a pure D library
After linking with those, I stumbled over kaleidicassociates/lubeck#3
Today I discovered that mir-glas aims to provide .. static c libraries
so I figured I Can use mir-glas in-place
mir-glas claims to provide blas and glas. For some reason lubeck still wants cblas though.
So, linking with cblas, it finally compiled
however, I again stumbled over the already mentioned bug, this time the program at least exits with code 255 and says something slightly different
I just updated the ticket accordingly
Mathias L. Baumann
@Marenz
though I don't even know why cblas is required, my assumption was that mir-glas would provide all.
Ilya Yaroshenko
@9il
mir-glas is not used in Lubeck
lubeck uses only common cblas / lapack libs. Glas does not provide full cblas
The bug in lubeck code
Mathias L. Baumann
@Marenz
hmm alright. But I suppose I don't actually need lubeck and just use mir-glas directly
btw, I don't know when opBinary was implemented, but it is soooo nice to be able to write m[] = m1 + m2 (it wasn't possible last time I used it)
me gusta
Mathias L. Baumann
@Marenz
I assume there is no libary that offers something like a lazy gemm abstraction so I could write things like m[] = m1.mtimes(m2) + m3;
It seems not trivial to write something like that myself as I discovered
at least if you want to avoid temporary allocations
Ilya Yaroshenko
@9il
m[] = m1.mtimes(m2) + m3; should be possible with lubeck
I will fix the mtimes bug
Thank you for the report!
Mathias L. Baumann
@Marenz
Yeah, it is with lubeck, but as I understood, lubeck doesn't use mir-glas, right?
Ilya Yaroshenko
@9il
Yes, lubeck does not
Mathias L. Baumann
@Marenz
another question: what exactly does the universal() function do? It doesn't take the slice as a ref-argument so I am wondering if it modifies the original slice in any way or if it just returns a new slice that has a different "view" on the same data? Or would it be a mistake to use the original slice after I called universal() on it?
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