ChatGPTのCode Interpreter環境のメモ
Code Interpreter 実行環境
- プラットフォーム:OpenAIのJupyter Notebook環境
- Pythonのバージョン:3.8.10
- OS:詳細不明(LinuxベースのOSと推測)
- 仮想環境:公開情報なし
- Jupyter Notebook環境:公開情報なし
- CPU:詳細不明
- メモリ:詳細不明
- ストレージ容量:詳細不明
その他:
- この環境は、Pythonの実行と一部のPythonライブラリ(NumPy、Pandas、Matplotlibなど)の使用をサポートしています。
- この環境はインターネット接続が無効化されており、外部のAPIやデータベースへのアクセスは不可能です。
- 新たなPythonライブラリのインストールやシェルコマンドの実行は制限されています。
インストール済みパッケージの一覧
- これらのバージョンは、環境や時間により異なる可能性があります。
Package | Version |
---|---|
zopfli | 0.2.2 |
zipp | 3.15.0 |
yarl | 1.9.2 |
xml-python | 0.4.3 |
XlsxWriter | 3.1.2 |
xlrd | 1.2.0 |
xgboost | 1.4.2 |
xarray | 2023.1.0 |
xarray-einstats | 0.5.1 |
wsproto | 1.2.0 |
wrapt | 1.15.0 |
wordcloud | 1.8.1 |
Werkzeug | 2.3.6 |
websockets | 10.3 |
websocket-client | 1.6.1 |
webencodings | 0.5.1 |
weasyprint | 53.3 |
wcwidth | 0.2.6 |
watchfiles | 0.19.0 |
wasabi | 0.10.1 |
Wand | 0.6.11 |
uvloop | 0.17.0 |
uvicorn | 0.22.0 |
ujson | 5.8.0 |
tzlocal | 5.0.1 |
typing-extensions | 4.5.0 |
typer | 0.4.2 |
trimesh | 3.9.29 |
traitlets | 5.9.0 |
tqdm | 4.64.0 |
tornado | 6.3.2 |
torchvision | 0.11.1 |
torchtext | 0.6.0 |
torchaudio | 0.10.0 |
torch | 1.10.0 |
toolz | 0.12.0 |
tomli | 2.0.1 |
toml | 0.10.2 |
tinycss2 | 1.2.1 |
tifffile | 2023.7.4 |
threadpoolctl | 3.1.0 |
thinc | 8.0.17 |
Theano-PyMC | 1.1.2 |
textract | 1.6.4 |
textblob | 0.15.3 |
text-unidecode | 1.3 |
terminado | 0.17.1 |
tenacity | 8.2.2 |
tabulate | 0.8.9 |
tabula | 1.0.5 |
tables | 3.6.1 |
sympy | 1.8 |
svgwrite | 1.4.1 |
svglib | 1.1.0 |
statsmodels | 0.12.2 |
starlette | 0.25.0 |
stack-data | 0.6.2 |
srsly | 2.4.6 |
SpeechRecognition | 3.8.1 |
spacy | 3.1.7 |
spacy-legacy | 3.0.12 |
soupsieve | 2.4.1 |
SoundFile | 0.10.2 |
sortedcontainers | 2.4.0 |
snuggs | 1.4.7 |
sniffio | 1.3.0 |
smart-open | 6.3.0 |
slicer | 0.0.7 |
Shapely | 1.7.1 |
shap | 0.39.0 |
sentencepiece | 0.1.99 |
Send2Trash | 1.8.2 |
semver | 3.0.1 |
seaborn | 0.11.2 |
scipy | 1.7.3 |
scikit-learn | 1.0 |
scikit-image | 0.18.3 |
rpds-py | 0.8.8 |
resampy | 0.4.2 |
requests | 2.31.0 |
reportlab | 3.6.1 |
regex | 2023.6.3 |
referencing | 0.29.1 |
rdflib | 6.0.0 |
rasterio | 1.2.10 |
rarfile | 4.0 |
qrcode | 7.3 |
pyzmq | 25.1.0 |
pyzbar | 0.1.8 |
PyYAML | 6.0 |
pyxlsb | 1.0.8 |
PyWavelets | 1.4.1 |
pytz | 2023.3 |
pyttsx3 | 2.90 |
python-pptx | 0.6.21 |
python-multipart | 0.0.6 |
python-dotenv | 1.0.0 |
python-docx | 0.8.11 |
python-dateutil | 2.8.2 |
pyth3 | 0.7 |
pytest | 6.2.5 |
pytesseract | 0.3.8 |
pyswisseph | 2.10.3.2 |
pyshp | 2.1.3 |
pyprover | 0.5.6 |
pyproj | 3.5.0 |
pyphen | 0.14.0 |
PyPDF2 | 1.28.6 |
pyparsing | 3.1.0 |
pypandoc | 1.6.3 |
PyNaCl | 1.5.0 |
PyMuPDF | 1.19.6 |
pymc3 | 3.11.5 |
pyluach | 2.2.0 |
pylog | 1.1 |
pygraphviz | 1.7 |
Pygments | 2.15.1 |
pydyf | 0.7.0 |
pydub | 0.25.1 |
pydot | 1.4.2 |
pydantic | 1.8.2 |
pycryptodome | 3.18.0 |
pycparser | 2.21 |
pycountry | 20.7.3 |
py | 1.11.0 |
pure-eval | 0.2.2 |
ptyprocess | 0.7.0 |
psutil | 5.9.5 |
pronouncing | 0.2.0 |
prompt-toolkit | 3.0.39 |
prometheus-client | 0.17.0 |
proglog | 0.1.10 |
priority | 2.0.0 |
preshed | 3.0.8 |
pooch | 1.7.0 |
pluggy | 1.2.0 |
plotnine | 0.10.1 |
plotly | 5.3.0 |
platformdirs | 3.8.0 |
pkgutil-resolve-name | 1.3.10 |
Pillow | 8.3.2 |
pickleshare | 0.7.5 |
pexpect | 4.8.0 |
pdfrw | 0.4 |
pdfplumber | 0.5.28 |
pdfminer.six | 20200517 |
pdfkit | 0.6.1 |
pdf2image | 1.16.3 |
patsy | 0.5.3 |
pathy | 0.10.2 |
parso | 0.8.3 |
paramiko | 3.2.0 |
pandocfilters | 1.5.0 |
pandas | 1.3.2 |
packaging | 23.1 |
orjson | 3.9.1 |
opt-einsum | 3.3.0 |
openpyxl | 3.0.10 |
opencv-python | 4.5.2.54 |
olefile | 0.46 |
odfpy | 1.4.1 |
numpy | 1.21.2 |
numpy-financial | 1.0.0 |
numexpr | 2.8.4 |
numba | 0.57.1 |
notebook | 6.5.1 |
notebook-shim | 0.2.3 |
nltk | 3.6.3 |
networkx | 2.6.3 |
nest-asyncio | 1.5.6 |
nbformat | 5.9.0 |
nbconvert | 7.6.0 |
nbclient | 0.8.0 |
nbclassic | 1.0.0 |
nashpy | 0.0.35 |
mutagen | 1.45.1 |
murmurhash | 1.0.9 |
munch | 4.0.0 |
multidict | 6.0.4 |
mtcnn | 0.1.1 |
mpmath | 1.3.0 |
moviepy | 1.0.3 |
monotonic | 1.6 |
mne | 0.23.4 |
mizani | 0.9.2 |
mistune | 3.0.1 |
matplotlib | 3.4.3 |
matplotlib-venn | 0.11.6 |
matplotlib-inline | 0.1.6 |
MarkupSafe | 2.1.3 |
markdownify | 0.9.3 |
markdown2 | 2.4.9 |
lxml | 4.9.3 |
loguru | 0.5.3 |
llvmlite | 0.40.1 |
librosa | 0.8.1 |
korean-lunar-calendar | 0.3.1 |
kiwisolver | 1.4.4 |
kerykeion | 2.1.16 |
keras | 2.6.0 |
jupyterlab | 3.4.8 |
jupyterlab-server | 2.19.0 |
jupyterlab-pygments | 0.2.2 |
jupyter-server | 1.23.5 |
jupyter-core | 5.1.3 |
jupyter-client | 7.4.9 |
jsonschema | 4.18.0 |
jsonschema-specifications | 2023.6.1 |
jsonpickle | 3.0.1 |
json5 | 0.9.14 |
joblib | 1.3.1 |
Jinja2 | 3.1.2 |
jedi | 0.18.2 |
jax | 0.2.28 |
itsdangerous | 2.1.2 |
isodate | 0.6.1 |
ipython | 8.12.2 |
ipython-genutils | 0.2.0 |
ipykernel | 6.24.0 |
iniconfig | 2.0.0 |
importlib-resources | 5.12.0 |
importlib-metadata | 6.7.0 |
imgkit | 1.2.2 |
IMAPClient | 2.1.0 |
imageio | 2.31.1 |
imageio-ffmpeg | 0.4.8 |
hyperframe | 6.0.1 |
hypercorn | 0.14.3 |
httpx | 0.24.1 |
httptools | 0.6.0 |
httpcore | 0.17.3 |
html5lib | 1.1 |
hpack | 4.0.0 |
h11 | 0.14.0 |
h5py | 3.4.0 |
h5netcdf | 1.1.0 |
h2 | 4.1.0 |
gTTS | 2.2.3 |
graphviz | 0.17 |
gradio | 2.2.15 |
geopy | 2.2.0 |
geopandas | 0.10.2 |
geographiclib | 1.52 |
gensim | 4.1.0 |
fuzzywuzzy | 0.18.0 |
future | 0.18.3 |
frozenlist | 1.3.3 |
fpdf | 1.7.2 |
fonttools | 4.40.0 |
folium | 0.12.1 |
Flask | 2.3.2 |
Flask-Login | 0.6.2 |
Flask-Cors | 4.0.0 |
Flask-CacheBuster | 1.0.0 |
Fiona | 1.8.20 |
filelock | 3.12.2 |
ffmpy | 0.3.0 |
ffmpeg-python | 0.2.0 |
fastprogress | 1.0.3 |
fastjsonschema | 2.17.1 |
fastapi | 0.92.0 |
Faker | 8.13.2 |
extract-msg | 0.28.7 |
executing | 1.2.0 |
exchange-calendars | 3.4 |
exceptiongroup | 1.1.2 |
et-xmlfile | 1.1.0 |
entrypoints | 0.4 |
email-validator | 2.0.0.post2 |
einops | 0.3.2 |
EbookLib | 0.18 |
ebcdic | 1.1.1 |
docx2txt | 0.8 |
dnspython | 2.3.0 |
dlib | 19.22.1 |
dill | 0.3.6 |
deprecat | 2.1.1 |
defusedxml | 0.7.1 |
decorator | 4.4.2 |
debugpy | 1.6.7 |
cymem | 2.0.7 |
cycler | 0.11.0 |
cssselect2 | 0.7.0 |
cryptography | 3.4.8 |
countryinfo | 0.1.2 |
compressed-rtf | 1.0.6 |
comm | 0.1.3 |
cmudict | 1.0.13 |
cloudpickle | 2.2.1 |
cligj | 0.7.2 |
click | 8.1.4 |
click-plugins | 1.1.1 |
charset-normalizer | 2.1.1 |
chardet | 4.0.0 |
cffi | 1.15.1 |
catalogue | 2.0.8 |
camelot-py | 0.10.1 |
CairoSVG | 2.5.2 |
cairocffi | 1.6.0 |
cachetools | 5.3.1 |
Brotli | 1.0.9 |
branca | 0.6.0 |
bokeh | 2.4.0 |
blis | 0.7.9 |
blinker | 1.6.2 |
bleach | 6.0.0 |
beautifulsoup4 | 4.12.2 |
bcrypt | 4.0.1 |
basemap | 1.3.2 |
basemap-data | 1.3.2 |
backports.zoneinfo | 0.2.1 |
backoff | 1.10.0 |
backcall | 0.2.0 |
Babel | 2.12.1 |
audioread | 3.0.0 |
attrs | 23.1.0 |
async-timeout | 4.0.2 |
asttokens | 2.2.1 |
arviz | 0.15.1 |
argon2-cffi | 21.3.0 |
argon2-cffi-bindings | 21.2.0 |
argcomplete | 1.10.3 |
anytree | 2.8.0 |
anyio | 3.7.1 |
analytics-python | 1.4.post1 |
aiosignal | 1.3.1 |
aiohttp | 3.8.1 |
affine | 2.4.0 |
absl-py | 1.4.0 |
wheel | 0.34.2 |
urllib3 | 1.25.8 |
unattended-upgrades | 0.1 |
six | 1.14.0 |
setuptools | 45.2.0 |
requests-unixsocket | 0.2.0 |
python-apt | 2.0.1+ubuntu0.20.4.1 |
PyGObject | 3.36.0 |
PyAudio | 0.2.11 |
pip | 20.0.2 |
idna | 2.8 |
distro-info | 0.23ubuntu1 |
dbus-python | 1.2.16 |
certifi | 2019.11.28 |
インストール済みフォントの一覧
Font |
---|
C059 |
D050000L |
DejaVu Sans |
DejaVu Sans Display |
DejaVu Sans Mono |
DejaVu Serif |
DejaVu Serif Display |
Droid Sans Fallback |
Liberation Mono |
Liberation Sans |
Liberation Sans Narrow |
Liberation Serif |
Nimbus Mono PS |
Nimbus Roman |
Nimbus Sans |
Nimbus Sans Narrow |
Noto Mono |
P052 |
STIXGeneral |
STIXNonUnicode |
STIXSizeFiveSym |
STIXSizeFourSym |
STIXSizeOneSym |
STIXSizeThreeSym |
STIXSizeTwoSym |
Standard Symbols PS |
URW Bookman |
URW Gothic |
Z003 |
cmb10 |
cmex10 |
cmmi10 |
cmr10 |
cmss10 |
cmsy10 |
cmtt10 |
Amazon Prime Readingで読める技術書 (2023-02)
Amazon の Prime Reading でただで読めるIT系の技術書。
自分が後で読む用のメモです。
はじめてのデータベース設計: 概念設計 E-R図作成編
ER図の書き方。ページ数が少ないからサッと読めそう。
- 発売日: 2021/9/2
- 61ページ
- ★3.8 (74)
やさしく学ぶ データ分析に必要な統計の教科書 できるビジネスシリーズ
Excelでデータ分析の本っぽい。
- 発売日: 2018/6/22
- 256ページ
- ★3.8 (151)
Linuxで動かしながら学ぶTCP/IPネットワーク入門
VirtualBox上のUbuntu 20.04でNetwork Namespaceで仮想のネットワークを作っていく内容みたい。まとまった時間がある時に手を動かして読む感じ。
- 発売日: 2020/2/29
- 349ページ
- ★4.3 (165)
はじめて学ぶバイナリ解析 不正なコードからコンピュータを守るサイバーセキュリティ技術
C言語とGDBでバッファオーバーフロー攻撃の仕組みを調べる内容っぽい。
- 発売日: 2020/2/21
- 293ページ
- ★4.1 (122)
JavaScript 初級者が知るべき39のこと
Reactの文法ややこしくて分からんって人向けの内容っぽい。
- 発売日: 2020/6/22
- 本の長さ : 91ページ
- ★3.9 (89)
ちゃんと知っておきたい人のHTML/CSS完全入門: HTML習得の最短講座!1日30分で楽しく学ぼう!
11章以降の「架空の皮膚科のウェブ予約システム」~「開発者ツールの使い方」あたり軽く読みたい。
- 発売日: 2020/10/8
- 本の長さ : 184ページ
- ★4.1 (75)
ゲームを作りながら楽しく学べるPythonプログラミング
Python3 + PyGameの本っぽい。2017年はちょっと古いか。
- 発売日: 2017/3/24
- 290ページ
- ★3.9 (153)
Spring Boot 2 入門: 基礎から実演まで
Spring Boot は JavaのWebアプリ用フレームワークらしい。
- 発売日: 2020/5/22
- 428ページ
- ★4.3 (78)
Unity 2019.4 で AndroidのターゲットAPIレベルを30にしてビルドする
普通にUnityのPlayer SettingsでAndroidのAPIレベルを30にしてビルドするとなんかエラーが出たので、以下を実行した。
(1) 管理者権限で PowerShellを開く
(2) 環境変数JDK_HOMEをUnityのJDKパスに設定
> $env:JDK_HOME = "C:/Program Files/Unity/Hub/Editor/2019.4.30f1/Editor/Data/PlaybackEngines/AndroidPlayer\OpenJDK"
※JDKパスは、Unityエディタの「Edit」メニュー→「Preferences」→「External Tools」を開いて、「JDK Installed with Unity (recomended)」をコピー
(3) カレントディレクトリを Android SDK の tools/bin フォルダに移動
cd C:/Program Files/Unity/Hub/Editor/2019.4.28f1/Editor/Data/PlaybackEngines/AndroidPlayer\SDK cd tools/bin
※SDKパスは、Unityエディタの「Edit」メニュー→「Preferences」→「External Tools」の「Android SDK Tools Installed with Unity (recommended)」をコピー
(4) SDK Managerで更新
API level 30対応ツールをインストール
.\sdkmanager.bat "build-tools;30.0.3" .\sdkmanager.bat "platforms;android-30"
以上を実行したあと、もう一度ビルドを試すと成功した。
Windowsでインストーラーを作る(下調べ)
Windows上で使えるインストーラーファイルには、大きく分けて以下の3種類ある。
- EXEファイル
- MSIファイル
- MSIXファイル
(1) EXEファイルのインストーラー
昔ながらのEXEファイルのインストーラー。よく使われている作成方法は、
NSISを使って作る
OSSや商用で広く使われている。一番メジャーっぽい。スクリプトにかなりクセがあって使うのが面倒くさい (関数呼び出し時は引数をPUSH/POP命令で渡すなど)。
スクリプトやプラグインを使えばかなり複雑なことができる。例えば、最初はユーザー権限で起動しておいて、インストール先に応じて管理者権限に昇格したりなど。
Inno Setupを使って作る
VSCodeのインストーラー作成に使われている。NSISに比べるとスクリプトにクセがなく使いやすそう。
ちなみにVSCodeの自動アップデートは inno-updater というツールで行っているっぽい。VSCode以外の自動アップデートにも利用できるかどうか不明。
Install Shieldを使って作る
有料。昔はよく使われていた。今はマイナーっぽい?
Qt Installer Framework (Qt IFW)を使って作る
Qt SDKのインストーラー作成に使われているインストーラーツール。Qtで作ったプログラム以外でも使えるっぽい?自動アップデートに対応している。
イチから自分で作る
インストーラーのプログラムを自社で書いて作ったら、HDDの中身を消しちゃうバグを混入させて騒ぎになったゲームがあったらしい (https://castaneai.hatenablog.com/entry/mizuiro-uninstaller)。使いにくくても既存のインストーラー作成ツールを使った方が良さそう。
自動アップデートや修正パッチインストーラーみたいな特殊なものを作る場合は、自分で作っている所が多いっぽい?でもアップデート処理にバグがあってHDDの中身を消しちゃうゲームもあったらしい (https://www.4gamer.net/games/120/G012075/20130906098/)。
(2) MSIファイル
広く使われているMSIファイルのインストーラー。Windows 2000の頃から使われている。拡張子には .msi (インストーラー)と .msp (修正パッチインストーラー) がある。
資料: The Definitive Guide to Windows Installer (洋書 / 米Amazon)
WiX Toolkitを使って作る
インストーラー作成のためのCLIツール群。インストーラーの設定は拡張子 ".wxs" のXMLファイルで記述する。WiX Toolkitをインストールしたら、インストール先の bin フォルダ (%WIX%\bin) に自分でパスを通して使う。
このサイトがすごく詳しい (http://www.02.246.ne.jp/~torutk/windows/wixandwixedit.html)。
WinEditを使って作る
WiX Toolkit用のXMLを作成するためのGUIツール。事前にWiX Toolkitをインストールしてから使う。
(3) MSIXファイル
Windows 10 バージョン1709以降でサポートされた新しいインストーラーファイル形式。UWPアプリ/ネイティブアプリどちらのインストールも可能。アプリはユーザーがアクセスできない特殊フォルダ %ProgramFiles%/WindowsApps/ の下にインストールされる。
インストーラー作成時にコードサイニング証明書が必要だが、証明書は通常は法人でないと発行できないのと、取得・維持に年間数万の費用が必要になる (通常は企業の部門ごとに証明書を1つ用意しておき、その部門で作成するアプリは全て同じ証明書で署名する)。個人やOSS、小規模なビジネスの場合は通常は自己署名で作成することになり、インストール時にSmartScreenで警告が表示される(ある程度ダウンロード数が増えると消えるらしい)。有名な無料SSL認証局Let's Encryptはコードサイニング証明書には対応しない(参照: Let's Encrypt - Do you support Code Signing)。
一応Windows 7~8.1でも、MSIXファイルを実行するための MSIX Coreというアプリをインストールすれば使うことができるらしい。でもインストール方法をユーザーに説明するのが面倒くさい。
MSIX Packaging Toolを使って作る
MSIXファイルを作るためのツール (https://docs.microsoft.com/ja-jp/windows/msix/packaging-tool/create-app-package)。
Visual Studio 2019で作る
Visual Studio 2019でアプリのビルド時にMSIXパッケージを作成することもできる (https://docs.microsoft.com/ja-jp/windows/msix/package/packaging-uwp-apps)。
参考動画: How to create an MSIX package with Visual Studio - YouTube
モバイルGPUでのゲーム開発について
モバイルGPUでのゲーム開発について参考になりそうな記事のリンクを集めて、要旨をまとめた。
2019年に iOS と Android のテクスチャを扱うこと (2019-7)
iOSでATSCテクスチャを、AndroidでETC2テクスチャを使うことについての考察。
元記事リンク (英語):
記事の要旨:
- UnityのiOS用テクスチャは古いiOSで使えるPCRTCがデフォルトだがブロックノイズが目立つ。ATSCが品質面で大きく優れている。Android用テクスチャはETC1がデフォルトだが、ETC1はアルファが使えないためUnityのSplit Alpha機能を使ってアルファチャンネル用画像を別に作成する必要がある(もしくは無圧縮RGBAにするか)。品質とサイズの両面でETC2が大きく優れている。
- iOSではiPhone 6 (2014)以降でATSCが使える。ATSCを使おう。だがいずれにしても、解像度の違うiPad ProとiPhone SEで同じサイズのテクスチャを使うという問題はある。それを解決するためにオンデマンドやアプリ分割で端末ごとに違うテクスチャを配信したい場合は、Unity自体では対応できないだろうから、ポストビルドの段階での手作業になるだろう。
- Androidでは、GLES 3.0対応端末がETC2に対応している。Googleの統計ページによれば2019年5月の段階で78.9%がGLES 3.0に対応している。残りの21.1%はETC2をメモリ上に無圧縮展開して使うだろう。21.1%のうちどの程度がゲーマーだろう?それは分からないが、誰かがアプリのレビューで文句を言わない限り、私はETC2を使っていくと思う。(※端末ごとの配信やAABの話題は長くなるので割愛)
記事のコメント:
- それから1年後 (2020年5月)、GLES 3.0非対応端末は21.1%→14.5%に減った。(訳注: 2021-02のGoogleの統計では12.28%に減っています)
さまざまな端末での4096x4096テクスチャ対応 (2017-9)
4k(4096x4096)テクスチャを使うべきか、2k(2048x2048)テクスチャを使うべきかについての考察。
元記事リンク (英語):
記事の要旨:
- (私見だが)ほとんどの現代の端末は4096x4096テクスチャに対応している。よほど古い端末をサポートするのでなければ4kテクスチャを使って良い。
記事のコメント:
- 4kテクスチャは4倍のメモリを使うので、今でもハイエンド端末で2kテクスチャを選ぶケースはある。
- 2014年に、SteamのPCゲームで4kテクスチャが動かないユーザーがいて2kテクスチャに差し替えたケースがあった。
モバイルの最大テクスチャサイズ (2013-10)
Unityフォーラムの2013年当時のやり取り。モバイル向けゲームで4096x4096のテクスチャを使えるかどうか。
元記事リンク (英語):
回答:
- 2013-10 ベストアンサー: 対象のプラットフォームによるが、最大2048x2048の端末のサポートをもう少し続けていくことを勧める。メモリ容量の問題もある。
- 2017-8: 現在では状況は変わったのだろうか?様々な矛盾した回答を見てきた。Androidの99%が4096に対応しているという話も見たが、1年前の回答だったしどうも真実ではないと思う。GLES 3.0以上であれば 4096が使えると思って良さそうだが、2017-8現在のGoogleの統計ではまだAndroidの28%がGLES 2.0を使っている。(訳注: 2021-02のGoogleの統計では12.28%に減っています)
スマホ機種ごとのスペック詳細リスト
ものすごく詳しい。かなりの数の機種の SoC, RAM, CPU, GPU, 解像度, OpenGLESバージョンなどが一覧できる。
元記事リンク (日本語):
フォートナイトとスマホGPU (2019-8)
フォートナイトにおけるGPU対応と端末シェアについての考察。
元記事リンク (英語):
記事の要旨:
モバイルの SoC / GPU メモ
モバイル向けARMアーキテクチャについて調べると知らない単語がすごく多かったので、SoCとGPUのシリーズ名などを整理してみた。
ARMアーキテクチャのターゲットOS
ARM上で動作するOSは下記のように多岐に渡るが、たいていの場合ターゲットはAndroidかiOSである。それ以外のOSが動くかどうかはSoCによる。
SoC
SoC シリーズ | メーカー |
---|---|
Snapdragon (スナップドラゴン) | Qualcomm (クアルコム) |
Helio (ヘリオ) | MediaTek (メディアテック) |
Dimensity (ディメンシティ) | MediaTek (メディアテック) |
Apple A11 ~ A14 | Apple |
Apple M1 | Apple |
Exynos (イクシノス) | Samsung (サムスン) |
Kirin (キリン) | HUAWEI (ファーウェイ) |
UNISOC SC | UNISOC (ユニ・エスオーシー) |
Rockchip RKシリーズ | Rockchip Electronics (ロックチップ・エレクトロニクス) |
Tegra (テグラ) | NVIDIA (エヌビディア) |
Amlogic Sシリーズ | Amlogic (アムロジック) |
Allwinner Aシリーズ / Hシリーズ | Allwinner Technology (オールウィナー・テクノロジー) |
BROADCOM BCMシリーズ | BROADCOM (ブロードコム) |
i.MX (アイドットエムエックス) | NXP Semiconductors (エヌエクスピー・セミコンダクターズ) |
OMAP (オーマップ) | Texas Instruments (テキサス・インスツルメンツ) |
Snapdragon (スナップドラゴン)
英クアルコムのSoC。採用例が非常に多い。
SoCメーカー | Qualcomm (クアルコム) |
GPU | Adreno |
メーカー | 機種 | SoC | OS | 発売 |
---|---|---|---|---|
Xiaomi | Mi 10 | Snapdragon 865 | MIUI11 (Android 10カスタム) | 2020 |
Pixel 4a | Snapdragon 730G | Android 10 | 2020 | |
Samsung | Galaxy S10 (USA/China) | Snapdragon 855 | Android 9 | 2019 |
Sony | Xperia 10 II | Snapdragon 665 | Android 10 | 2020 |
Sharp | AQUOS sense4 | Snapdragon 720G | Android 10 | 2020 |
Asus | ZenFone 7 | Snapdragon 865 | Android 10 | 2020 |
Motorola | moto g8 power | Snapdragon 665 | Android 10 | 2020 |
富士通 | arrows 5G F-51A | Snapdragon 865 | Android 10 | 2020 |
京セラ | TORQUE G04 | Snapdragon 660 | Android 9 | 2019 |
採用機種 (ヘッドセット):
メーカー | 機種 | SoC | OS | 発売 |
---|---|---|---|---|
Oculus | Oculus Quest 2 | Snapdragon XR2 | Android 10カスタム | 2020 |
Microsoft | HoloLens 2 | Snapdragon 850 | Windows Holographic | 2020 |
採用機種 (PC):
メーカー | 機種 | SoC | OS | 発売 |
---|---|---|---|---|
Microsoft | Surface Pro X | Microsoft SQ1 (Snapdragon 8cxカスタム) | Windows 10 | 2020 |
Lenovo | Yoga C630 | Snapdragon 850 | Windows 10 | 2019 |
Helio (ヘリオ) / Dimensity (ディメンシティ)
台湾MediaTekのSoC。Helioは4G世代、Dimensityは5G世代のSoCに付けられるブランド名。メインストリーム以外にはブランド名が付かずMTで始まる型番名で呼ばれるようだ。
メーカー | MediaTek (メディアテック) |
GPU | Mali |
PowerVR |
メーカー | 機種 | SoC | OS | 発売 |
---|---|---|---|---|
Xiaomi | Redmi Note 9 | Helio G85 | MIUI 11 (Android 10カスタム) | 2020 |
Oppo | Reno3 | Dimensity 1000L | Android 10 | 2020 |
Samsung | Galaxy A41 | Helio P65 | Android 10 | 2020 |
Sony | Xperia L4 | Helio P22 | Android 9 | 2020 |
Motorola | moto g8 power lite | Helio P35 | Android 9 | 2020 |
Amazon | Fire HD 8 | MT8168 | Fire OS 7 (Android 9カスタム) | 2020 |
採用機種 (セットトップボックス):
メーカー | 機種 | SoC | OS | 発売 |
---|---|---|---|---|
Amazon | Fire TV Stick | MT8695D | Fire OS 7 (Android 9カスタム) | 2020 |
採用機種 (PC):
メーカー | 機種 | SoC | OS | 発売 |
---|---|---|---|---|
Lenovo | Chromebook S330 | MT8173C | Chrome OS | 2019 |
Apple A11 ~ A14
米Appleのモバイル用途向けSoC。iPhone や iPadで使われる。
メーカー | Apple |
GPU | Apple A11~A14 GPU |
Apple M1
メーカー | Apple |
GPU | Apple M1 GPU |
- 採用例:
- パソコン MacBook Air (2020)
- パソコン MacBook Pro 13 inch (2020)
- パソコン Mac mini (2020)
Exynos (イクシノス)
韓国サムスンのSoC。サムスンは製品によってSoCを使い分けていて、他社のSoCであるSnapdragonやHelioを採用することも多い。
メーカー | Samsung (サムスン) |
GPU | Mali |
Kirin (キリン)
中国ファーウェイ傘下ハイシリコンのSoC。ファーウェイ製品に使われていたが、米中対立のため政治的に厳しい状況となり、2020年9月に生産中止となった。
メーカー | HiSilicon (ハイシリコン) |
GPU | Mali |
VeriSilicon GC |
- 採用例:
UNISOC (ユニ・エスオーシー) SCシリーズ
中国UNISOCのSoC。比較的安価なスマホやタブレットに使われるようだ。
メーカー | UNISOC (ユニ・エスオーシー) |
GPU | PowerVR |
Mali |
Rockchip (ロックチップ) RKシリーズ
中国RockchipのSoC。Chromebookやタブレットなどに使われるようだ。
メーカー | Rockchip Electronics (ロックチップ・エレクトロニクス) |
GPU | Mali |
PowerVR |
- 採用例:
- タブレット KEIAN KI-R10 (2018)
- ChromeOSパソコン Samsung Chromebook Plus OP1 (2017)
- ChromeOSパソコン Asus Chromebook Flip C101PA (2017)
- タブレット KEIAN KPD108R (2016)
- スマートテレビ Sharp AQUOS HC-16TT1-W (2015)
Tegra (テグラ)
米NVIDIAのSoC。2015年にスマホ市場から撤退した。
その後もNintendo Switch や Nvidia Shield TV などで採用されている。
メーカー | NVIDIA (エヌビディア) |
GPU | Tegra |
- 採用例:
Amlogic (アムロジック) Sシリーズ
米アムロジックのSoC。主にセットトップボックスに使われるようだ。
メーカー | Amlogic (アムロジック) |
GPU | Mali |
- 採用例:
- セットトップボックス Fire TV Cube (2019)
- スマートテレビ Xiaomi Mi TV 4 (2017)
Allwinner (オールウィナー) Aシリーズ / Hシリーズなど
中国AllwinnerのSoC。主にセットトップボックスや開発ボードに使われるようだ。
メーカー | Allwinner Technology (オールウィナー・テクノロジー) |
GPU | Mali |
PowerVR |
- 採用例:
- Linuxパソコン PineTab (2020)
- シングルボードコンピュータ PINE A64 (2017)
- タブレット GoTab X GT97X (2014)
BROADCOM (ブロードコム) BCMシリーズ
米ブロードコムのSoC。ラズベリーパイの他、ネットワーク製品などに使われるようだ。
メーカー | BROADCOM (ブロードコム) |
GPU | VideoCore |
- 採用例:
- シングルボードコンピュータ Raspberry Pi 4 (2020)
i.MX (アイドットエムエックス)
オランダのNXPのSoC。主に自動車や産業機器に使われるようだ。
もともとは米Freescale(フリースケール)が開発していたが、2015年にNXPに合併された。そのため、Freescale i.MXと呼ばれることがある。
メーカー | NXP Semiconductors (エヌエクスピー・セミコンダクターズ) |
GPU | VeriSilicon GC |
- 採用例:
- Eインクタブレット Amazon Kindle Voyage (2014)
OMAP (オーマップ)
米テキサス・インスツルメンツのSoC。2012年にスマホ市場から撤退し、2013年のOMAP5を最後にシリーズが終了した。
メーカー | Texas Instruments (テキサス・インスツルメンツ) |
GPU | PowerVR |
- 採用例:
- タブレット Amazon Kindle Fire HD (2013)
GPU
GPU シリーズ | メーカー |
---|---|
Mali (マリ) | ARM(アーム) |
Adreno (アドレノ) | Qualcomm (クアルコム) |
PowerVR (パワーブイアール) | Imagination Technologies (イマジネーション・テクノロジーズ) |
DMP RS1 / PICA200 / M3000 | DMP (ディジタル・メディア・プロフェッショナル) |
VideoCore (ビデオコア) | BROADCOM (ブロードコム) |
VeriSilicon GC シリーズ | VeriSilicon (ベリシリコン) |
Mali (マリ)
英ARMが各SoCメーカーに許諾してライセンス生産されるGPU。さまざまなメーカーのSoCで採用されている。
メーカー | ARM(アーム) |
採用SoC | Helio / Dimensity |
Exynos | |
Kirin | |
UNISOC SCシリーズ | |
Rockchip RKシリーズ | |
OMAP |
- 採用機種:
Adreno (アドレノ)
クアルコムのSoC Snapdragonに内蔵されたGPU。
メーカー | Qualcomm (クアルコム) |
採用SoC | Snapdragon |
- 採用機種:
PowerVR (パワーブイアール)
英イマジネーションのGPU。
iPhone 8で不採用となり一時期落ち込んだが、また採用が増えつつある。
メーカー | Imagination Technologies (イマジネーション・テクノロジーズ) |
採用SoC | Helio |
UNISOC SCシリーズ | |
Rockchip RKシリーズ | |
OMAP |
- 採用機種:
DMP RS1 / PICA200 / M3000 など
日本のDMPのGPU。
任天堂のゲーム機、バンダイナムコの遊技機、ルネサスのLSIなどに使われているようだ。
メーカー | DMP (ディジタル・メディア・プロフェッショナル) |
採用SoC | 不明 |
- 採用機種:
- ゲーム機 Newニンテンドー2DS LL (2017)
- ゲーム機 Nintendo 3DS (2011)
VideoCore (ビデオコア)
米ブロードコムのGPU。ラズベリーパイで使われている。
もともとはAlphamosaic(アルファモザイク)が開発していたマルチメディアプロセッサだが、2004年にブロードコムに買収された。
メーカー | BROADCOM (ブロードコム) |
採用SoC | BCMシリーズ |
- 採用機種:
- シングルボードコンピュータ Raspberry Pi 4 (2020)
VeriSilicon (ベリシリコン) GC シリーズ
米ベリシリコンのGPU。
もともとは米Vivante(ビバント)が開発していたが、2015年にベリシリコンに買収された。そのため、Vivant GCシリーズと呼ばれることがある。
メーカー | VeriSilicon (ベリシリコン) |
採用SoC | i.MX |
Avalonia ってどうなの
Avalonia とは
Avalonia (アバロニア) は、WPFに似たマルチプラットフォームのGUIフレームワーク。エストニアの AvaloniaUI 社が開発している。
ライバルは Microsoft が開発している Uno Platform (ウノ・プラットフォーム)。
特徴
リンク
Uno Platformとの比較
Avalonia 0.9 | Uno Platform 3.0 | |
---|---|---|
開発元 | AvaloniaUI | Microsoft |
開発環境 | Visua Studio 2019 | Visua Studio 2019 |
メイン言語 | C# | C# |
UI記述言語 | XAML | XAML |
.NETバージョン | .NET Core 3.1 | .NET Core 2.2 |
各種ビルドターゲットへの対応は下記の通り。
Avalonia 0.9 | Uno Platform 3.0 | |
---|---|---|
Windowsデスクトップアプリ (Windows 7~) | ✅ | ❌(※1) |
Windowsストアアプリ (UWP) | ❌ | ✅ |
MacOSX | ✅ | ✅ |
Linux | ✅ | ❌(※2) |
iOS | ❌(※3) | ✅ |
Android | ❌(※3) | ✅ |
ウェブブラウザ (WebAssembly) | ❌ | ✅ |
(※1) 将来的に、Microsoftが開発中の WinUI 3 がリリースされれば対応予定。2021年後半か?
(※2) Uno Platform 3.1 で対応するみたい?
(※3) 将来的に対応するつもりみたい
Avalonia 雑感
ダメ
良い
結論
Windowsデスクトップアプリだけを作りたいなら WPF の方が良い。将来性なら Uno Platform の方が良さそう。
Avalonia は今その隙間を埋めてくれるGUIフレームワークだけど、バージョン1.0に達していないのもあり、本格的に使ってみるにはまだ早い感じがした。もうちょっと様子見したい。