目次
HiSilicon製SoC搭載の開発ボードが昔から欲しかったので、やっと手に入れたという話です。
落ちてたので買ってみた
Kirin960が乗っているHiKey960とか、Kirin970のHiKey970とかあったわけですが、最近のAtlas200シリーズはAI用としてラインナップされて売っているようです。中古で落ちていたので買ってきました。
Atlas 200 DK、1.5万円弱でした。後悔はしていない。
状態は悪くないです。若干埃っぽいくらいで、あんまり使われていた形跡はない感じ。
左側面は入出力ポート。電源、USB Type-C、MicroSD、LANポートです。映像出力はありません。
右側面はリセットボタンのみです。
赤いラインが入っていていいですね。
Betop H2と並べると兄弟みたい、そういう説もある。
スペック
CPUはAscend 310で、Cortex-A55が8コアです。同じA55×8の構成のSoCは、Unisoc SC9863A、Exynos 850、JLQ JR510があるようです。それぞれクロックが違うので完全に同じではないですが、Antutuで15万点くらいの性能でした。ついでに、Da Vinci MaxというNPUが2コアついてます。
Cortex-A76×4コアのAscend 310Bというのもあって、そっちは後継機のAtlas 200I DK A2やOrange Piなんかに使われてます。
RAMは8GBあります。HiKey960や970はRAMが4GBとか6GBとかなので、本機は余裕があります。
正確な発売日はわかりませんでしたが、もはや7年近く前の製品であり、いまさらこれでAIが云々などとやっても意味ないので、超かっこいいミニPC的な感じで活用していきます。
分解
爪で留まっているだけなので、恐る恐る引きはがすと解体できます。
さらにファンを外すと、ヒートシンクが出てきます。
そしてこれ自体が、Atlas 200というAIモジュールです。
ヒートシンクとの接触面はグリスが塗られていました。
さらに解体。HynixのRAMが2枚。CPUは裏面なので見られませんでした。
組み戻して、基板本体後方です。Ascend310は監視カメラ用を想定しているSoCでもあるので、22ピンMIPIが2ポートあって、そのへんでラズパイ向けに売っているカメラが挿さります。
セットアップ
ドキュメントがあっちこっちに散乱していて、しかもめちゃくちゃリンク切れしていて、古いバージョンもそのまま放置されているので、非常に面倒です。Huawei.comにあったりHuaweiCloud.comにあったりHiAscend.comにあったり、Giteeにあったりするのを、頑張って探したらなんとかなりました。普通に動かすだけでも一苦労。
SDカードを準備
とりあえず、文档首页 > Atlas 200I DK A2开发者套件 の「Windows系统制卡」にある「Ascend Devkit Imager」をダウンロードしてきて、SDカードに焼けば使えます。このページは本来は後継機のAtlas 200I DKのものであって、本当は200 DKのページから落としたいのですが、そっちは普通に消滅しています。
書き込みは問題なく終わりました。
起動
ACアダプタはなかったので、中国の怪しいPDトリガーと例のPDアダプタで電源を取ります。
4つあるランプが全部点けばOK。PCとUSBケーブルで接続して、ゴニョニョやったらSSHでログインできます。
ログイン
USBでSSHとインターネット接続する方法のメモ
このへん見て設定する。
https://bbs.huaweicloud.com/forum/thread-171887-1-1.html
https://bbs.huaweicloud.com/forum/thread-131817-1-1.html
うまくいかなければ以下。
ドライバを当てる。デバイスマネージャーから、不明なやつを見つけて、ドライバの更新→コンピュータを参照→一覧から選択→MicrosoftのRNDIS6アダプタにする。
IPアドレスを設定。コンパネのネットワーク接続→RNDIS6なやつ→プロパティ→IPv4のプロパティで、192.168.1.123
にしておく。
SSHで入ってみる。パスワードはMind@123
。
rootになってネットワーク設定を変更。パスワードはMind@123
。
su
vi /etc/netplan/01-netcfg.yaml
こうする。
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.0.2/24]
# gateway4: 192.168.0.101
nameservers:
addresses: [8.8.8.8]
addresses: [114.114.114.114]
usb0:
dhcp4: no
addresses: [192.168.137.2/24]
gateway4: 192.168.137.1
nameservers:
addresses: [8.8.8.8]
addresses: [114.114.114.114]
Windowsでネットワーク共有にする。RNDISデバイスが192.168.137.1
になる。
再度ログイン。ここでインターネットに繋がっている。
ダメならこれとかやる。
sudo ip route del default via 192.168.0.101 dev eth0
Ubuntu 18.04 LTSでした。24.04 LTSまで上げてみました。普通に動いてます。
CPUは8コア8スレッド、4コアの2クラスタになってました。
消費電力設定のメモ
消費電力設定。rootでチェックする。
cd /var/davinci/driver/
./upgrade-tool --device_index -1 --component nve --level
たぶんデフォルトでfullなのでいじる必要はない。fullになっていなければ変更。
./upgrade-tool --device_index -1 --component nve --level full
コア数設定のメモ
デフォルトでは、4コア分がCtrlCPU
に、残りがAICPU
とDataCPU
に割り当てられていている。つまり、通常のCPUとしては4コアしか使われない。
これは起動時に割り当てられるので、強制的に書き換えれば全コアを使うことができる。
起動スクリプトを編集できるようにしておく。
chmod u+w /var/davinci/scripts/minirc_sys_init.sh
/var/davinci/scripts/minirc_sys_init.sh
を開く。update_aicpu_config()
を探す。DEVDRV_AICPU_CONFIG
やらDEVDRV_CTRLCPU_CONFIG
やらがあるので全消し。コアの割り当てをハードコードする。
update_aicpu_config()
{
echo 0-7 > /sys/fs/cgroup/cpuset/CtrlCPU/cpuset.cpus
echo 7 > /sys/fs/cgroup/cpuset/AICPU/cpuset.cpus
echo 7 > /sys/fs/cgroup/cpuset/DataCPU/cpuset.cpus
}
再起動すると全コア使えるようになっている。テスト中に問題が発生することはなかったが、ソフトウェア的にもハードウェア的にも、これが安全なやり方なのかはわからないので注意。
NPU用のソフトウェアも入ってますが使いません。
デスクトップ環境
映像出力がないのでそのままでは当然映像は出せませんが、頑張ればリモートデスクトップでGUIを使うことができます。やる意味があるのかは不明。
RDPでGUIを表示する方法のメモ
Xfce入れる。
apt update
apt install xfce4 xfce4-goodies
HwHiAiUserに戻ってからxsession書く。
echo "startxfce4" > ~/.xsession
xrdp入れる。
apt install xrdp
systemctl enable xrdp
systemctl start xrdp
ダミーディスプレイドライバ入れる。
apt install xserver-xorg-video-dummy
/etc/X11/xorg.conf
を作ってディスプレイ設定する。
Section "Device"
Identifier "Configured Video Device"
Driver "dummy"
EndSection
Section "Monitor"
Identifier "Configured Monitor"
HorizSync 28.0-80.0
VertRefresh 48.0-75.0
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1920x1080"
EndSubSection
EndSection
日本語化する。
apt update
apt install language-pack-ja language-pack-gnome-ja ibus-mozc fonts-noto-cjk
update-locale LANG=ja_JP.UTF-8
WindowsのリモートデスクトップにIPアドレス(192.168.137.2
)とユーザー(HwHiAiUser
)とパスワード(Mind@123
)を入力して接続。詳細オプションで画面サイズなど調整しておくとよい。
パスワードは、キーボードレイアウトが間違っていると@が打てないので、passwd HwHiAiUser
で予め変えておくか、気合で打ち込むかする。
起動するだけで若干もっさりしてます。
Firefoxで動画再生など。これは限界突破していてほぼ操作できないです。
その他
何らかのSNSサーバーも動作可。
KDE Plasma。重いです。
Cinnamon。重いです。
UKUI。一見良さげですが、起動後に謎のダイアログが出て操作不能になるのでやめました。
デスクトップ環境を入れるための容量確保のメモ
使用するSDカードのサイズにかかわらず、システムに使われるのは16GB分で固定。容量の大きいデスクトップ環境はストレージが足りなくなりインストールでコケる。
本当はSDカードに書き込んだあとパーティションを調整すべきだが、めんどくさいのでいらないデータを消すことで必要な容量を確保する。一生使わないAI用ソフトウェアがいっぱい入っているので、これを消す。
rm -rf /usr/local/Ascend
rm -rf /usr/local/python3.9.7
これで3GB以上使える容量が増える。普通に使う上では問題は起きないが、起動時にスクリプトが見つからないエラーメッセージを吐くようになるので、あまりおすすめしない。
まとめ
合計2週間くらいこいつとバトルしていましたが、手懐けるのには苦労しました。でもやっぱり使い道はないです。せめてあと1ポートだけでもUSBがついていれば使いようがあった、のかもしれない。
新潟のハドフに1台在庫があるようなので、買った人はこの記事を読んで活用しておいてください。