shtaxxx日記

コンピュータアーキテクチャについて研究している研究者の日記や技術紹介

macOS Mojave (10.14.4) 向けにEmacsを野良ビルドする際にxml.cでエラーとなる場合の対処法

新しいEmacsのバージョンが出るといつも、こちらを参考に、インラインパッチを当てて野良ビルドをしているのだが、今回は、Emacs 26.2のビルド中に、"xml.c:23:10: fatal error: 'libxml/tree.h' file not found"とエラーが出てビルドができなかった。以前は…

KLダイバージェンスを用いた異なる量子化パラメータの比較

NVIDIAのINT8量子化では、 KL Divergenceを使って活性値の分布をより正確に近似できる量子化パラメータ(最大値と最小値)を探索しているらしいので、それを実装してみた。 量子化前後でヒストグラムのビンの幅が異なるので、そのままではKLダイバージェンス…

macOS Sierra上のMicrosoft Office各種でEmacsキーバインドを使う

macOS Sierraでは(現状)Karabinerが動作しないため,標準でEmacsキーバインドが利用できないアプリケーションにもEmacsキーバインドを割り当てることができずに困っていた.英かなでもキーバインドの変更が可能であるが,一部のアプリケーションでは一部の…

Mac上のemacsでauto-complete-clang-asyncを使う

Emacsでc/c++の補完をするためにauto-complete-clang-asyncを使うことにしました. 以下はその設定時のメモ. Homebrewでemacs-clang-complete-asyncをインストールする brew install emacs-clang-complete-async emacsでauto-complete-clang-asyncをインス…

Debian Linux on Zynq Setup Flow (for Vivado 2015.4)

Xilinx Zynq(ARM搭載FPGA)の上でDebian Linux(8.0 Jessie)を動作させるためのチュートリアルを作りました。Slideshareからどうぞ。 以下の手順で専用ハードウェア(といってもチュートリアルではGPIOのみ)をLinux経由で制御するHW/SW協調システムを開発…

PythonとVeriloggenのデータフローライブラリでパイプライン回路をお手軽に設計する

Veriloggen 0.5.0をリリースしました。Python 3.5をサポートしたり、遅延評価・合成の仕組みを入れたり、かなり意欲的な更新です。 github.com 最近、GoogleのTensorFlowが流行っていますね。データフローですね。そこで、今回の目玉は、パイプライン回路を…

Pythonベースの高位合成コンパイラPolyphonyを試してみた

はじめに 高位合成友の会の第3回が12/8に開催されるらしいです。 (僕はPythonでのハードウェアメタプログラミングの話をします。) hls.connpass.com プログラムによると、PolyphonyというPythonベースの高位合成コンパイラの発表があるらしいです。Python…

VeriloggenとPythonでハードウェアのRTLシミュレーションをする

Veriloggenをいろいろ更新し,Version 0.4.3をリリースしました. github.com 同時にPyverilogも1.0.1をリリースしました.テスト周りを補強しリファクタリングを行った安定版です. github.com 準備: PyverilogとVeriloggenのインストール 安定版のインスト…

Veriloggenで条件・遅延付き代入を含むVerilog HDLのステートマシンを作る

引き続きVeriloggenのお話です.今回はVeriloggenのFSMライブラリの条件付き代入や遅延付き代入を紹介します. VeriloggenはPythonでVerilog HDLのソースコードを組み立てることができるライブラリです. 今回の例はGitHubのここにあります. github.com lib…

PythonとVeriloggenで既存のVerilogモジュールを読み込んで改造する

前回に引き続きVeriloggenの話.今回は, read_verilog_module(), read_verilog_module_str() を使って,Verilog HDLで書かれた既存のハードウェア構成を取り込んで,更に改変する方法についてまとめます. VeriloggenはPythonでVerilog HDLのソースコードを…

PythonとVeriloggenでソーティングネットワークを書いてみる

@miyox氏がSynthesijer.Scalaでソーティングネットワークを自動生成していたので,Veriloggenでも試してみた. VeriloggenはPythonでVerilog HDLのソースコードを組み立てるフレームワークです. github.com このソースコード一式は,ここにあります. 基本…

PyMTLを使ってLEDチカチカ回路を作ってみる

ACM/IEEE MICRO-48で発表されたPyMTLを試してみたので,その使い方をまとめておきます. PyMTLはPython上でBehavior level, Cycle level, Register transfer levelの3種類の抽象度でハードウェアをモデリングすることができるフレームワークです. cornell-b…

Veriloggen: PythonでVerilog HDLのソースコードを組み立てるためのライブラリ

海外出張の帰りの飛行機の中でちょっと暇だったので,Verilog HDLのソースコードをPythonで組み立てるためのライブラリを作りました.Python2.x, 3.x両対応です. PyHDI/veriloggengithub.com veriloggen 0.2.0 : Python Package Indexpypi.python.org PyCoR…

PowerPoint 2011 for Macで勝手に大文字にしないように設定する

Zynq+PyCoRAM(+Debian)入門

Zynq + Vivado HLS入門とZynq + Synthesijer入門に引き続き,ARMを搭載するFPGAのXilinx Zynqの上でPyCoRAMを用いて生成したIPコアを利用するためのチュートリアルを作成しました. Zynq上でLinuxを動作させることでおなじみのソフトウェアを利用できて便利…

ディスクイメージの大きさを変えるには

まずディスクイメージ一覧を確認する. VBoxManage list hdds サイズを変更する.MB単位で大きさを指定する.例の場合では80GB. VBoxManage modifyhd "/Users/username/VM/Ubuntu/Ubuntu.vdi" --resize 81920

githubでpull requestが来たときの対処法

git

まず自分の現状のコミットIDを調べておく. git log 新しいブランチを作成して,相手のブランチを持ってくる. git checkout -b pull-request master git pull https://github.com/hishername/project.git branchname 最初に調べたコミットIDを使って,差分…

久しぶりに雑感

一流を目指すか,二流なりの戦い方をするか,悩ましい. # はてなダイアリーとはてなブログの使い分けが難しい.

Ubuntu Desktop 14.04 Memo

とりあえずメモ sudo rm -r /etc/ssh/ssh*key sudo dpkg-reconfigure openssh-serversudo apt-get install nvidia-current

screenでタイトルを,コマンド実行中はコマンド名に,でなければ現在のディレクトリ名に自動で設定する

以前にscreenのhardstatusに表示されるウィンドウタイトルを現在実行中のコマンドに設定する方法の記事を書いたが,今回はその更新版. screenの各ウィンドウのタイトルを,コマンド実行中はそのコマンド名に自動で設定し,そうでなければ現在の作業ディレク…

ログインシェルをtcshのままbashを普段使いシェルとして使う

通常はypchsh/chshをすれば良いのだが,ログインシェルを変更ができない場合やしない方が良い場合には,.cshrcを以下の様に設定して,ログイン時にbashを起動する. Non-interactiveの場合(scpやsshfs)の場合にも正しく動作するようにpromptのチェックを行…

emacsでPython+Jediの補完を使う

OSには事情によりCentOS 6.5を想定しているが,Ubuntu等でもほぼ同じ. 各種ソフトウェアインストール pipをインストールし,その後virtualenvをインストールする.既にインストールされていればスキップ可能.CentOS (6.5) の場合 (rootで実行) yum install…

emacsでGo言語(golang)の補完と定義ジャンプをするにはgocodeとgodefを使う

emacs (24.3) 上でgolang (1.3.3) の補完とコードジャンプを利用する方法をまとめました. ターミナルのシェルにはbashを使っていますが,他のシェルでも変わらないはず. PATH各種を設定する まず,emacs上でexec-pathが$GOPATH (Goコマンドでインストール…

Xilinx ISEのフロアプランで使用されたスライスに色を付ける

a2psでソースコードをpsに変換,その後pdfに変換

たまに使うa2ps.いつもオプションを忘れてしまうのでメモ. こちらを参考にさせて頂きました.ありがとうございました. $ a2ps --prologue=color --line-numbers=1 input.py -o code.ps $ ps2pdf -sPAPERSIZE=a4 code.ps output.pdf

"mkimage” command not found – U-Boot images will not be built." on Ubuntu

sudo apt-get install u-boot-tools

Can not execute a 32-bit binary on 64-bit Ubuntu

sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386

クレジットカードが不正利用されてしまった 続き

三井住友VISAに連絡して,カードを止めてもらって,新しいカードを発行してもらった.明日には届くみたい.素早い対応でよかった.どうやら,"GOOGLE*SEGA"に加えて,もう1件問い合わせが照会があったみたいで,そちらも不正利用と思われる.話を聞いてみた…

クレジットカードが不正利用されてしまった

Amazonで買い物をするのに,クレジットカードのポイントサービス経由で買って,ポイント2倍ゲットしようと思って,ログインしたところ,最近の利用一覧に身に覚えのない請求があるのを発見."GOOGLE*SEGA"という名目で合計49,800円,不正利用されてしまった…

Verilog HDLのデザイン解析・コード生成のためのPythonベースのオープンソースツールキットPyverilogをリリースしました

Pyverilogは,ハードウェア記述言語Verilog HDLで記述されたハードウェアデザインの解析とコード生成を行うための,Python実装のツールキットです. githubからダウンロード Pyverilog: Python-based Hardware Design Processing Toolkit for Verilog HDL 構…