Showing posts from 2021

Chess for Android Move Coach on E-Boards

Since I am very enthusiastic about all those new beautiful e-boards that are coming out recently, such as the Millennium Tournament 55 , I am also very enthusiastic again to add new features to Chess for Android . Today I added the "move coach", which has been a feature of Chess for Android since the beginning, to e-boards as well. To enable or disable the feature, simply go to the option menu, and toggle the option. I demonstrate the new feature on e-boards in the following brief video. Please let me know what you think. I hope to release this to Google Play very soon!

Reversi for Android and Certabo Electronic Boards

I posted a brief instructional video for my Reversi for Android application. I also show how to connect this app with any of the Certabo electronic boards. Even though these boards are typically used for chess, the identifying chips make the boards, in principle, suitable for any 8x8 game. In past videos, I showed using Certabo boards with Chess and Checkers for Android. But the latest video discussed using the boards for reversi. And, yes, you will need 2x64 identifying chips for this experiment!

Millennium Supreme Tournament 55 (video)

I posted a brief instructional video on how to use the new Millennium Supreme Tournament 55 electronic chess board with my Chess for Android application .

Millennium Supreme Tournament 55

Millennium has released the Supreme Tournament 55 electronic chessboard. The board and the American Staunton style pieces are handmade from real wood. And, like all Millennium electronic chessboards, using the Chesslink module, this board works well with my Chess for Android application. Overall, a spectacular addition to the Millennium electronic boards family!

Exhaustive State Space Search for Efficient Code Generation

A long time ago, in a galaxy far away, I scribbled down some notes on how to use Prolog to exhaustively search for the best assembly instruction sequences that perform particular data manipulations, in particular for SIMD. And although I actually used such an approach to verify whether code examples shown in The Software Vectorization Handbook were truly optimal, I always thought the ideas were too thin for actual publication. However, now that ML-to-optimize-ML is becoming popular, I was hoping that perhaps a few people would be interested in reading about ideas from a simpler time, when AI still meant Prolog and expert systems and such. Therefore, I made the notes available as arXiv white paper .

Podcast: What Can You Tell Me About Software?

Thanks to Faraz and Vasanth for inviting me to their " What can you tell me about software? " podcast. We chatted nicely about compilers, LLVM, MLIR, fuzz testing, and even some #chess! To listen to the podcast, tune in to either  Spotify Podcast ,  Apple Podcast , or Google Podcast .

Intel Advanced Matrix extensions (AMX)

I guess you can never take the Intel out of the boy even if the boy is long out of Intel. A few months back, I had lots of fun making sure MLIR's code generation maps to efficient AVX512 instructions. This week, I thoroughly enjoyed designing and implementing a MLIR dialect for Intel Advanced Matrix extensions (AMX) with integration tests that run correctly on a Sapphire Rapids emulator. Staring at some x86 assembly instructions, it does not get much better than that....