22:06karolherbst: HdkR: by any chance, would you know what the "extended" instruction in the turing macro language would do?
22:09HdkR: nop. That thing is pretty much completely foreign to me
22:10karolherbst: :(
22:12fltrz: so, I have a GT 740M and would like to run compute kernels (say OpenCL) I see the feature is not supported yet, I looked at the stack and I am under the impression this should be implemented in Mesa, so I looked to search for the instruction set etc, and I can see source code describing nv50_ir_emit_nvc0.cpp
22:13karolherbst: it's already supported in mesa
22:13fltrz: so I think the lowest levels are already implemented, its 'just' that one would need to implement OpenCL primitives in terms of these IR's.
22:13fltrz: karolherbst: I meant with hardware acceleration?
22:14karolherbst: sure
22:14karolherbst: just disabled by default and everything
22:14fltrz: how do I test this?
22:14karolherbst: NOUVEAU_ENABLE_CL=1
22:14karolherbst: on newest main it might actually work reliable enough
22:14fltrz: I am running arch, wayland, sway, nouveau
22:14karolherbst: might also be that the support isn't compiled in
22:15fltrz: thats fantastic news, NOUVEAU_ENABLE_CL=1 is a ./configure -time flag?
22:15karolherbst: no, runtime
22:15fltrz: how do I check if its compiled in my nouveau installation?
22:15karolherbst: but I see that arch doesn't enable it
22:16karolherbst: with clover it would need the gallium-spirv=enabled compile time flag
22:16fltrz: aha!, so I will have to fetch source from AUR?
22:16fltrz: what is clover?
22:16karolherbst: ehh
22:16karolherbst: -Dopencl-spirv
22:16karolherbst: the OpenCL implementation of mesa
22:16fltrz: does it have a webpage or tutorials?
22:16karolherbst: nope
22:16karolherbst: it's literal just an OpenCL implementation
22:16fltrz: or documentation?
22:17fltrz: some test compute kernels?
22:17karolherbst: also I have been working on replacing clover, so...
22:17karolherbst: fltrz: just use any OpenCL demo
22:17karolherbst: but it seems like you would need to compile mesa yourself
22:18fltrz: the runtime NOUVEAU-ENABLE_CL=1, should be exported?
22:18karolherbst: and then it's probably best to compile from main
22:18karolherbst: fltrz: yeah
22:18karolherbst: but with archs packages it won't do anything
22:18fltrz: what do you mean with "compile from main" ? main branch?
22:18karolherbst: yep
22:19karolherbst: I pushed some threading fixes recently for nouveau, which are quite important for CL
22:19fltrz: AUR package should work (with possibly PKGBUILD modifications?)
22:19karolherbst: as long as you stick to simple OpenCL demos then probably
22:19karolherbst: not sure if it compiles main though
22:19karolherbst: but it might
22:19karolherbst: but also not sure how painful it would be to adjust the PKGBUILD to compile from main
22:19fltrz: karolherbst: so if I understand you, I don't need to recompile kernel nouveau, libdrm; but I do need to recompile Mesa?
22:20karolherbst: there might be some AUR packages around enabling all of that
22:20karolherbst: fltrz: correct
22:21fltrz: most AUR packages literally just download from source and ./configure flags in the PKGBUILD, so it doesn't seem hard to tweak unless theres a ball of cat hair somewhere
22:22fltrz: karolherbst: how did you insta-determine Mesa doesn't have the flag enabled on arch? or theres the usual stream of arch users coming here with that question?
22:22karolherbst: I checked the PKGBUILD file
22:22fltrz: which ./configure flags should I necessarily enable, and which should I try to enable in the hopes of improving performance?
22:23karolherbst: but it also would need the llvm-spirv-translator as its dep
22:23karolherbst: added to deps: spirv-llvm-translator, spirv-tools
22:23karolherbst: added to compile time flags: -Dopencl-spirv=enabled
22:23karolherbst: I hope that's everything
22:24fltrz: any minimal version I should pay attention to re: llvm-spirv-translator, spirv-tools, mesa?
22:24karolherbst: nope
22:24karolherbst: it's been there for 1-2 years already, so any version should be good enough
22:24fltrz: karolherbst: and then I should just find a bunch of minimal OpenCL demo's to try and run them?
22:24karolherbst: I fixed a few things over time, but nothing relevant on a practical level
22:24karolherbst: yeah
22:24fltrz: is there a feature matrix for clover vis-a-vis OpenCL versions?
22:24karolherbst: though I wouldn't be surprised if it crashes your machine
22:25karolherbst: we have https://mesamatrix.net/
22:26karolherbst: anyway.. I'll merge something which is fully CL 3.0 compliant next week, so...
22:27fltrz: I saw that, but it only shows 'nvc0' (I think GT 74M is nve0; but lshw says its GK107 while wikipedia claims its GK208)
22:28fltrz: karolherbst: it can only crash while running compute kernels right?
22:29fltrz: also WikiPedia claims this mobile GT 740M has ~750 GFLOPs, which sounds a bit unrealistic
22:35fltrz: karolherbst: when you merge a change like "fully CL 3.0 compliant" does this usually end up in a mailing list (if I hadn't asked about it)? if so which mailing list should I subscribe to?
22:45karolherbst: fltrz: why are 750 GFLOPS unrealisitc?
22:45karolherbst: fltrz: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439
22:45karolherbst: we do mostly everything on gitlab these days
22:49karolherbst: modern GPUs have like 20 TFLOP/s
22:58fltrz: yeah but this laptop is ~10y old
23:00karolherbst: well low end GPUs today have like ~5 TFLOP/s
23:01karolherbst: roughly 8 times faster in 10 years
23:01HdkR: And high end cell phones have ~2TFLOP/s
23:01karolherbst: GPUs are and were always quite fast