oneofthose
The Record
This has anecdotally been true since forever. Back in the day, OpenCL implementations were passing conformance test but performance was poor. They could not turn hardware capabilities into performance for compute users. Drivers were buggy. Documentation was poor compared to NVidia's docs and forum. Offerings were inconsistent (look up Sycl from Codeplay) and ownership of what it is like to develop for AMD was unclear. The notion that it might not have improved or is only now improving is puzzling. It can't be for the lack of recognizing the problem. Intuitively it does not seem so difficult. I'm curious what the reasons are.
We are a small team and are building something new and exciting in the medical device space.
Skills we are looking for: ARM, RISC-V architectures, embedded C, Rust, freeRTOS, BLE, I2C, SPI, UART, I2S, PCB bringup and debugging; familiarity with Python and Bazel is a plus.
Please email me directly: seb+hn [AT] gochromatic [DOT] com
Ask HN: What is a rocket launch moment in your engineering or startup career?
For engineers at companies like SpaceX or Rocket Labs, a rocket launch is an emotional event where, within just a few minutes, the work of many months or years is rewarded (if the rocket works). What is an equivalent in your field of work/field of engineering?For a chip designer I could imagine it is the first chip being shipped from the fab for testing. For a civil engineer maybe the...
As for "$Id$", in bazel you would use https://bazel.build/docs/user-manual#workspace-status which works very well and can differentiate between stable and volatile.
Version Control Beyond Git
Ask HN: How do you do version control during hardware-software co-design?
How do folks develop PCBs, firmware, host-software, maybe even ASICs and track versions of each? Can these various components be effectively tracked in a single repository? Specifically:The timelines for design cycles vary greatly – it can range from mere minutes for host software changes, builds, and tests, to hours for FPGA synthesis, and days to weeks for PCBs. ASIC development can span...
AI Conceptual Art
Glitch Art in Medical Imaging
Doctor Yellow (HSR Test Train)
Parallel Programming for FPGAs (Book)
Edit: source code is GPL licensed https://github.com/springer13/hptt
Using Slack as a Digital Notebook
But if you're already in PyOpenCL I guess would also prefer to generate the bin files there (maybe using numpy) ans evaluate the output (matplotlib possibly). For optimization you could run the kernel in a loop, time the runtime and vary the number or global and local work groups.
I blogged about these kinds of libraries here (overview): http://www.soa-world.de/echelon/2014/04/c-accelerator-librar...
A new addition is welcome as we still have not found the perfect API for accelerator programming. EasyOpenCL seems very simple and easy to use but I feel like it is very restricted.
For getting started with OpenCL development these days I would recommend PyOpenCL. Since everything is in Python, data can be generated easily, results can be plotted using well known Python tools which simplified debugging. Kernels developed in PyOpenCL can directly be copied to other APIs (raw OpenCL C API or some of the other C/C++ wrappers) and reused in production code.