Displaying 4 results from an estimated 4 matches for "level1_dcache_linesize".
2018 Jun 19
6
Naming clash: -DCLS=n and CLS in code
...++ standards.
>
> I still think there's some weird library out there that interprets it
> the way you're suggesting, and Clang is not that weird library.
This is from a famous article series titled "What every programmer should know
about memory":
gcc -DCLS=$(getconf LEVEL1_DCACHE_LINESIZE) ...
https://lwn.net/Articles/255364/
http://mosermichael.github.io/cstuff/all/blog/2015/12/11/wepskn.html
https://www.dcl.hpi.uni-potsdam.de/teaching/numasem/slides/NUMASem_Matrix_multiplication.pdf
You can find more examples by searching for "DCLS getconf LEVEL1_DCACHE_LINESIZE".
2018 Jun 19
3
Naming clash: -DCLS=n and CLS in code
On Tue, 19 Jun 2018 at 20:46, Bruce Hoult <brucehoult at sifive.com> wrote:
> Furthermore .. in the articles you reference, the -DCLS=$(getconf LEVEL1_DCACHE_LINESIZE) is passed when compiling the user's program -- one doing extensive blocked matrix operations -- and not when building the *compiler*.
It's worse. At least in the first case, the code looks like it
wouldn't even compile without that definition. That's not an
optimization flag, that...
2018 Jun 19
2
Naming clash: -DCLS=n and CLS in code
Tim Northover via llvm-dev wrote on 06/19/2018 09:22 PM:
> On Tue, 19 Jun 2018 at 20:12, U.Mutlu <um at mutluit.com> wrote:
>> You can find more examples by searching for "DCLS getconf LEVEL1_DCACHE_LINESIZE".
>
> Frankly, it all looks like cargo-cult optimization flagomancy. I'd
> suggest you drop it, it's not magical I promise.
Hey, I'm working on optimization, and I know "it works".
Curious, have you ever heard of "false sharing" and "true sharing...
2018 Jun 19
2
Naming clash: -DCLS=n and CLS in code
Tim Northover via llvm-dev wrote on 06/19/2018 07:55 PM:
> On Tue, 19 Jun 2018 at 18:22, U.Mutlu via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
>> I think such "reserved" names like CLS that can be passed to the compiler(s),
>> should be avoided as identifiers for naming variables, constants, enum
>> members, macros etc.
>
> Why are you passing