move example IR to Kazan repo
[crowdsupply.git] / updates / 023_2020mar26_decoder_emulator_started.mdwn
index 593d81a3ca8210a776aafeda31f92a372638ee41..83a282da6d118e2342ac25f84b982d5618807b44 100644 (file)
@@ -26,6 +26,8 @@ Here's the summary (if it can be called a summary):
 * Jacob's simple-soft-float library growing
   [Power FP compatibility](http://bugs.libre-riscv.org/show_bug.cgi?id=258)
   and python bindings.
+* Kazan, the Vulkan driver Jacob is writing, is getting
+  a [new shader compiler IR](http://bugs.libre-riscv.org/show_bug.cgi?id=161).
 * A Conference call with OpenPOWER Foundation Director, Hugh, and Timothy
   Pearson from RaptorCS has been established every two weeks.
 * The OpenPOWER Foundation is also running some open
@@ -218,8 +220,7 @@ correct and does not contain transcription errors).*
 
 # simple-soft-float Library and POWER FP emulation
 
-The
-[simple-soft-float](https://salsa.debian.org/Kazan-team/simple-soft-float)
+The [simple-soft-float](https://salsa.debian.org/Kazan-team/simple-soft-float)
 library is a floating-point library Jacob wrote with the intention
 of being a reference implementation of IEEE 754 for hardware testing
 purposes. It's specifically designed to be written to be easier to
@@ -259,7 +260,7 @@ rewriting a lot of the status-flag handling code since Power supports a
 much larger set of floating-point status flags and exceptions than most
 other ISAs.
 
-Thanks to RaptorCS for giving us remote access to a Power9 system,
+Thanks to Raptor CS for giving us remote access to a Power9 system,
 since that makes it much easier verifying that the test cases are correct
 (more on this below).
 
@@ -267,14 +268,52 @@ API Docs for stable releases of both
 [simple-soft-float](https://docs.rs/simple-soft-float) and
 [algebraics](https://docs.rs/algebraics) are available on docs.rs.
 
+The algebraics library was chosen as the
+[Crate of the Week for October 8, 2019 on This Week in
+Rust](https://this-week-in-rust.org/blog/2019/10/08/this-week-in-rust-307/#crate-of-the-week).
+
 One of the really important things about these libraries: they're not
-specifically coded exclusively for Libre-SOC: like softfloat-3 itself
+specifically coded exclusively for Libre-SOC: like Berkeley softfloat itself
 (and also like the [IEEE754 FPU](https://git.libre-riscv.org/?p=ieee754fpu.git))
 they're intended for *general-purpose* use by other projects.  These are
 exactly the kinds of side-benefits for the wider Libre community that
 sponsorship, from individuals, Foundations (such as NLNet) and Companies
 (such as Purism and Raptor CS) brings.
 
+# Kazan Getting a New Shader Compiler IR
+
+After spending several weeks only to discover that translating directly from
+SPIR-V to LLVM IR, Vectorizing, and all the other front-end stuff all in a
+single step is not really feasible, Jacob has switched to [creating a new
+shader compiler IR](http://bugs.libre-riscv.org/show_bug.cgi?id=161) to allow
+decomposing the translation process into several smaller steps.
+
+The IR and
+SPIR-V to IR translator are being written simultaneously, since that allows
+more easily finding the things that need to be represented in the shader
+compiler IR. Because writing both of the IR and SPIR-V translator together is
+such a big task, we decided to pick an arbitrary point ([translating a totally
+trivial shader into the IR](http://bugs.libre-riscv.org/show_bug.cgi?id=177))
+and split it into tasks at that point so Jacob would be able to get paid
+after several months of work.
+
+The IR uses structured control-flow inspired by WebAssembly's control-flow
+constructs as well as
+[SSA](https://en.wikipedia.org/wiki/Static_single_assignment_form) but, instead
+of using traditional phi instructions, it uses block and loop parameters and
+return values (inspired by [Cranelift's EBB
+parameters](https://github.com/bytecodealliance/wasmtime/blob/master/cranelift/docs/ir.md#static-single-assignment-form)
+as well as both of the [Rust](https://www.rust-lang.org/) and [Lua](https://www.lua.org/) programming languages).
+
+The IR has a single pointer type for all data pointers (`data_ptr`), unlike LLVM IR where pointer types have a type they point to (like `* i32`, where `i32` is the type the pointer points to).
+
+Because having a serialized form of the IR is important for any good IR, like
+LLVM IR, it has a user-friendly textual form that can be both read and
+written without losing any information (assuming the IR is valid, comments are
+ignored). A binary form may be added later.
+
+Some example IR is [available in the Kazan repo](https://salsa.debian.org/Kazan-team/kazan/-/blob/master/docs/Shader%20Compiler%20IR%20Example.md).
+
 # OpenPOWER Conference calls
 
 We've now established a routine two-week conference call with Hugh Blemings,
@@ -450,7 +489,46 @@ separate lists (below).
 
 # Georgia Tech CREATE-X
 
-TODO
+(*This section kindly written by Yehowshua*)
+
+Yehowshua is a student at Georgia Tech currently pursuing a Masters in
+Computer Engineering - to graduate this summer. He had started working
+on LibreSOC in December and wanted to to get LibreSOC more funding so
+I could work on it full time.
+
+He originally asked if the ECE Chair at Georgia Tech would be willing
+to fund an in-department effort to deliver an SOC in collaboration
+with LibreSOC(an idea to which he was quite receptive). Through Luke,
+Yehowshua got in contact with Chistopher Klaus who suggested Yehowshua
+should look into Klaus's startup accelerator program Create-X and perhaps
+consider taking LibreSOC down the startup route.  Robert Rhinehart, who
+had funded LibreSOC a little in the past (*note from Luke: he donated
+the ZC706 and also funded modernisation of Richard Herveille's excellent
+[vga_lcd](https://github.com/RoaLogic/vga_lcd) Library*)
+also suggested that Yehowshua
+incorporate LibreSOC with help from Create-X and said he would be willing
+to be a seed investor. All this happened by February.
+
+As of March, Yehowshua has been talking with Robert about what type of
+customers would be interested in LibreSOC. Robert is largely interested in
+biological applications. Yehowshua also had a couple meetings with Rahul
+from Create-X. Yehowshua has started the incorporation of LibreSOC. The
+parent company will probably be called Systèmes-Libres with LibreSOC
+simply being one of the products we will offer. Yehowshua also attended
+HPCA in late February and had mentioned LIbreSOC during his talk. People
+seemed to find the idea quite interesting
+
+He will later be speaking with some well know startup lawyers that have
+an HQ in Atlanta to discuss business related things such as S Corps,
+C corps, taxes, wages, equity etc…
+
+Yehowshua plans for Systèmes-Libres to hire full time employees. Part
+time work on Libre-SOC will still be possible through donations and
+support from NL Net and companies like purism.
+
+Currently, Yehowshua plans to take the Create-X summer launch program
+and fund Systèmes-Libres by August. Full time wages would probably be
+set around 100k USD.
 
 # LOAD/STORE Buffer and 6600 design documentation