GPU Virtualization

Last year, Nvidia provides GRID K1 and GRID K2 GPUs for GPU virtualization. One could run multiple VM sharing the same graphic card to render complex applications. It takes the similar solution of SR-IOV but different approach. VMWare utilizes this GPU virtualization on their products and make the GPU performance in VM almost the same performance on bare-metal machine. Even without vGPU, VMWare’s Fusion still has about 90% of bare-metal performance.

Continue reading

Build Your ARM Image for QEMU

Hello there! I’ve been using QEMU for a while. Recently, I updated my ARM image and found that it has some difficulties to make an ARM image and could be an impossible job for those who are not familiar with embedded systems. I decided to write a comprehensive post to share some knowledge and how to build you own ARM image. This post could be very useful for those who want to know how Linux works with minimum requirements (root file system, in short rootfs). I use Vexpress as the target board in the tutorial.

Continue reading

How to Write a Lambda Expression and Callback Function in C

Lambda expression has been supported by many programming languages, but not standard C. By using lambda expression, one can easily do complex job with only the main part of algorithm. For example, one can write a parallel mapping function by lambda without declaring a multi-threading function. Therefore one writes only the essential part of code. The result is a better and simpler way of coding. Continue reading

細說git reset和git checkout的不同之處

Those who want to read English version to understand the difference between git reset and git checkout, please go to check the reference [1] at the bottom.

git是一個非常好用的版本控制軟體,但是在使用上偶爾會碰到使用git checkout和git reset,這時候就會想說到底要用哪個才是正確的,簡單的結論是,除非你清楚知道你在做什麼,不然不要使用git reset,大部分的情況都可以不用使用它,它就跟Linux中的 rm指令一樣,不可以隨便亂用,因為一旦使用了就會造成不可還原的影響。

Continue reading