TSX は cmpxchg のかわりに使えるか?
ARMのldrexとstrexのコードを見て、なんとなくx86のcmpxchgより読みやすい気がしたので、x86にもll/sc相当が欲しいなと思ったのですが、よく考えたら今のx86にはTMがあったのを思い出しました。 P […]
このブログは、株式会社フィックスターズのエンジニアが、あらゆるテーマについて自由に書いているブログです。
ARMのldrexとstrexのコードを見て、なんとなくx86のcmpxchgより読みやすい気がしたので、x86にもll/sc相当が欲しいなと思ったのですが、よく考えたら今のx86にはTMがあったのを思い出しました。 P […]
前回の記事では、Rustを使用したHello, Worldについて紹介しました。今回も同じ題材を使用して、Rustで低レイヤプログラミングを行うための細かなテクニックについて紹介します。 インラインアセンブリ Rustの […]
ちょっとしたきっかけがあって、AMD用のGPUとNVIDIA用のGPU両方で高速化作業を行いました。 そのときに得られた知見を書いておきます。 AMD GCN isa と NVIDIA SASS GPUでプログラミングを […]
前回の記事では、Rustを使用したHello, Worldについて紹介しました。今回も同じ題材を使用して、Rustで低レイヤプログラミングを行うための細かなテクニックについて紹介します。 インラインアセンブリ Rustの […]
Fixstarsでは半年ごとに2つの社内勉強会を開催しているのですが、今は、もうすぐ確定するはずのOpenCL 2.1に向けてOpenCL 2.0の勉強会を開催しています。 先週の発表者は私で、タイトルに書いたようなこと […]
Broadwell、いわゆる 5th Generation Intel(R) Core(TM) Processor がリリースされてから大分経ちましたが、皆さん、Broadwellは使っていますか? Broadwell […]
curl (かーる) という,Webアクセスのためのコマンドラインツールがあります. 今回はこのcurlを使って,FlashAir Developersのチュートリアルを再現してみます. 以下,お使いの環境にc […]
3/15 に行われた、x86/x64最適化勉強会7 に行ってきました。 当日の様子は、主催の光成さんが書かれた、x86/x64最適化勉強会7レポート や @t_teruya さんによる togetter のまとめ などが […]
今回の記事は技術トークからはやや離れて、社内で行っているプログラミングコンテストについてお話ししたいと思います。 フィックスターズとプログラミングコンテスト フィックスターズは、2008-9年にPS3に搭載されたCPUで […]
2/1(日)に開催されたFPGAエクストリーム・コンピューティング(通称:FPGAX)で発表してきました。会場はFPGAエンジニアを絶賛募集という事で話題の株式会社ドワンゴのセミナールームです。ドワンゴさんらしく、発表の […]
気付いたら前回から何か月たってんのよみたいになるけど、第一回はーじまーるよー(遅 前回のおさらい Hello worldのサンプルを読みました しかしこれ気になるところが数点あるので、まずは気になるところをどうにかしてい […]
NVIDIA 社の開発した Denver という 64bit ARM CPU は、ARM 機械語を最適化する機能を持っています。これをいくらか見てみようと思います コード https://bitbucket.org/fi […]
さすがに20倍にはならないので、と書きましたが、よく考えたら、最近のx86 では サイクルあたりで 16byte の sad が一個取れるので、20倍ぐらい出そうな気がしたので試してみました。 https://bitbu […]
最近のGPUは、動画エンコーダを実装しているものが多いです。 Intel社のGPUは、この動画エンコーダで使われる、ブロック単位での動き予測ハードウェアを、OpenCLから使うことができます。 公式の解説 : https […]
ソフトウェアパイプライン (SWPL) を、Don’t Repeat Yourself で書くというお話です。 サンプルとして次のプログラムを考えます。
東芝のFlashAirというSDメモリーカードがあります。 フラッシュメモリに加えて無線LAN基地局機能とマイコンを内蔵していて、電源さえ供給すればこのカードだけでWebサーバーとして使えます。あるいは、Webインターフ […]
SSE, AVXの比較結果は真の場合、全ビットが立ちますが、これは -1 とも解釈できるので、 if (a == b) { c++; } if (a == b) { c–; } は、それぞれ、 c = _mm_sub_ […]
命令単位の時間をはかってみましょう。この場合は、命令のクロック単位で知りたいことが多いので、CPU_CLK_UNHALTEDの値を使ってみます。 https://proc-cpuinfo.fixstars.com/201 […]
rdtscp や CPU_CLK_UNHALTED は、細かい性能を計測する場合には便利ですが、大きな粒度で計測したい場合、単位の変換などが面倒です。状況に応じて、色々な方法を使い分けると良いでしょう。 以下、思い付く範 […]
Parallellaの新SDK&Linuxカーネルがリリースされました! http://forums.parallella.org/viewtopic.php?f=13&t=1883 第1回の記事を書いている間に […]
keisuke.kimura in Livox Mid-360をROS1/ROS2で動かしてみた
Sorry for the delay in replying. I have done SLAM (FAST_LIO) with Livox MID360, but for various reasons I have not be...
Miya in ウエハースケールエンジン向けSimulated Annealingを複数タイルによる並列化で実装しました
作成されたプロファイラがとても良さそうです :) ぜひ詳細を書いていただきたいです!...
Deivaprakash in Livox Mid-360をROS1/ROS2で動かしてみた
Hey guys myself deiva from India currently i am working in this Livox MID360 and eager to knwo whether you have done the...
岩崎システム設計 岩崎 満 in Alveo U50で10G Ethernetを試してみる
仕事の都合で、検索を行い、御社サイトにたどりつきました。 内容は大変参考になりま...
Prabuddhi Wariyapperuma in Livox Mid-360をROS1/ROS2で動かしてみた
This issue was sorted....