Is there a specified/stable Typed Racket intermediate representation that has all the type info resolved, and which separate projects could build upon, for other target backends or analysis?

Reason for asking...

I was idly thinking of various ways to do GPU/TPU "supercomputing" from a normal Racket program, or to specify GPU bits in a Racket-ish source language.

One general way involves compiling a normal Racket/-ish program to both Racket VM and (at least some of the procedures or closures, or parts of same) to a language/IR like for OpenCL (or one of the other existing/emerging ones).  From there, even a simple implementation might be able to do things like automatically run a chunk/extent of algorithm on the GPU, when a static/dynamic heuristic suggests that the overhead of going to GPU is worthwhile.

Having very little time for this weekend side project, and not wanting to spend it reimplementing type inferencing or annotation... Is there a specified/stable IR of Typed Racket that would be easy to work with for this?  (Or would it be easier to do something simple from scratch in Racket (like a syntax transformation-heavy `#lang`), or to try to adapt the Pre-Scheme C target for this purpose?)

(I'm aware we could write numerical bits in, say, a C-like OpenCL language, and then do Racket FFI of the OpenCL API to run the GPU bits from our program otherwise coded in Racket.  I'm more interested in the problem of ways of compiling a Racket-ish language to run on the GPU.)

(Motivation: I have a new GPU computer toy, "https://www.neilvandyke.org/machine-learning/";, and, while some of my old Racket packages are still great for scraping/importing data for what's now called "data science", I then have to switch over to various growing stacks of software tools in other languages. Top-down, I could write wrappers to use some of those other tools from Racket.  But I wonder whether there are opportunities being missed, from a potential Racket bottom-up, while most people are busy with the big ML/stats toolkits and the algorithmic languages that are currently popular in data science.  Also, there is only so much Jupyter Notebook in a Web browser that a person can take, before they want to also understand more about the new metal. :)

--
You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to