Featured image of post HUAWEI Atlas 200 DKで遊ぶ

HUAWEI Atlas 200 DKで遊ぶ

目次

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コアついてます。

TSMCの12nmなので、制裁で揉めてたりするやつっぽいです。

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

1
2
su
vi /etc/netplan/01-netcfg.yaml

こうする。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
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になる。

再度ログイン。ここでインターネットに繋がっている。

ダメならこれとかやる。

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でチェックする。

1
2
cd /var/davinci/driver/
./upgrade-tool --device_index -1 --component nve --level

たぶんデフォルトでfullなのでいじる必要はない。fullになっていなければ変更。

1
./upgrade-tool --device_index -1 --component nve --level full

コア数設定のメモ

デフォルトでは、4コア分がCtrlCPUに、残りがAICPUDataCPUに割り当てられていている。つまり、通常のCPUとしては4コアしか使われない。

これは起動時に割り当てられるので、強制的に書き換えれば全コアを使うことができる。

起動スクリプトを編集できるようにしておく。

1
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やらがあるので全消し。コアの割り当てをハードコードする。

1
2
3
4
5
6
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入れる。

1
2
apt update
apt install xfce4 xfce4-goodies

HwHiAiUserに戻ってからxsession書く。

1
echo "startxfce4" > ~/.xsession

xrdp入れる。

1
2
3
apt install xrdp
systemctl enable xrdp
systemctl start xrdp

ダミーディスプレイドライバ入れる。

1
apt install xserver-xorg-video-dummy

/etc/X11/xorg.confを作ってディスプレイ設定する。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
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

日本語化する。

1
2
3
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。一見良さげですが、起動後に謎のダイアログが出て操作不能になるのでやめました。

まとめ

合計2週間くらいこいつとバトルしていましたが、手懐けるのには苦労しました。でもやっぱり使い道はないです。せめてあと1ポートだけでもUSBがついていれば使いようがあった、のかもしれない。

新潟のハドフに1台在庫があるようなので、買った人はこの記事を読んで活用しておいてください。

Hugo で構築されています。
テーマ StackJimmy によって設計されています。