|
You are here |
aarol.dev | ||
| | | | |
ashvardanian.com
|
|
| | | | | David Patterson had recently mentioned that (rephrasing): The programmers may benefit from using complex instruction sets directly, but it is increasingly challenging for compilers to automatically generate them in the right spots. In the last 3-4 years I gave a bunch of talks on the intricacies of SIMD programming, highlighting the divergence in hardware and software design in the past ten years. Chips are becoming bigger and more complicated to add more functionality, but the general-purpose compilers like GCC, LLVM, MSVC and ICC cannot keep up with the pace. Hardly any developer codes in Assembly today, hoping that the compiler will do the heavy lifting. | |
| | | | |
www.morling.dev
|
|
| | | | | Java 16 is around the corner, so there's no better time than now for learning more about the features which the new version will bring. After exploring the support for Unix domain sockets a while ago, I've lately been really curious about the incubating Vector API, as defined by JEP 338, developed under the umbrella of Project Panama, which aims at "interconnecting JVM and native code". Vectors?!? Of course this is not about renewing the ancient Java collection types like java.util.Vector (...... | |
| | | | |
www.bazhenov.me
|
|
| | | | | Introduction Link to heading Suppose we need to write a function that computes the next set of numbers in a range and stores them in a slice, as shown below: let pl = RangePl::new(1..12); let mut buffer = [0u64; 4]; pl.next_batch(0, &mut buffer); // returns 4, buffer[..] = [1, 2, 3, 4] pl.next_batch(0, &mut buffer); // returns 4, buffer[..] = [5, 6, 7, 8] pl.next_batch(10, &mut buffer); // returns 2, buffer[0..2] = [10, 11] pl.next_batch(10, &mut buffer); // returns 0, buffer not updated Key factors: | |
| | | | |
gist.github.com
|
|
| | | GitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to over 420 million projects. | ||