NVAPIを使ったVRAMの取得

NVAPIって知っていますか? NVAPIとはNVIDIA社が提供しているAPIです。 NVIDIA社が提供している有名なAPIとしてはCUDAが存在しますが、CUDAとは違いNVAPIは搭載されているハードウェアの情報を取得することが主な使用用途だと思われます。 さて、私はGPUを酷使する機会が多少ながらもあり、その時にVRAMがどの程度使用されているかどうかを取得するためのNVAPIのコードを紹介します。 NVAPIをダウンロード まずは、NVAPIを以下のリンクからダウンロードしてきます。 今回この記事で利用しているNVAPIのバージョンは「R450」です。 Developer Tools Download Center - NVIDIA Developer ダウンロードが終えたファイルの中には nvapi.h などのヘッタファイルがあり、ライブラリが入っているファイルが確認できます。 NVAPIファイルを、プログラムを作成する作業フォルダー内に配置してください。 VRAMの取得を行うコード C言語 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 #include <stdio.h> #include "NVAPI/nvapi.h" #if _M_AMD64 #pragma comment(lib, "NVAPI/amd64/nvapi64.lib") #else #pragma comment(lib, "NVAPI/x86/nvapi.lib") #endif int main() { NvAPI_Status nStatus = NvAPI_Initialize(); if (nStatus == NVAPI_OK) { NvPhysicalGpuHandle hGPUHandles[NVAPI_MAX_PHYSICAL_GPUS] = {0}; NvU32 count = 0; nStatus = NvAPI_EnumPhysicalGPUs(hGPUHandles, &count); if (nStatus == NVAPI_OK) { printf("GPUS:%d\n", count); } else { printf("ErrorCode:%d\n", nStatus); } NvPhysicalGpuHandle hGPUHandle = hGPUHandles[0]; NV_DISPLAY_DRIVER_MEMORY_INFO_V1 MemoryInfo; MemoryInfo.version = NV_DISPLAY_DRIVER_MEMORY_INFO_VER_1; nStatus = NvAPI_GPU_GetMemoryInfo(hGPUHandle, &MemoryInfo); if (nStatus == NVAPI_OK) { printf("VRAM Total:%.5lf[GB]\n", (double)MemoryInfo.dedicatedVideoMemory / 1048576); printf("VRAM Can Use:%.5lf[GB]\n", (double)MemoryInfo.availableDedicatedVideoMemory / 1048576); } else { printf("ErrorCode:%d\n", nStatus); } } return 0; } 今回使用するコンパイラはMSVC(cl.exe)を使用します。clangコンパイラでもコンパイル可能です。 ...

Posted 2020-11-13 ·  Rutsumi-Hinata ·  Tech

モバイルC - スマートフォンでC言語が使えるアプリ

iPhoneやAndroid端末でプログラミングできるアプリをご紹介。スマホで簡単にC言語で書かれたプログラムを実行したい人におすすめです。 概要 対応OS 価格 iOS(App Store) 無料(有料版あり) Android(Google Play) 無料(有料版あり) それぞれOS名をクリックするとダウンロードページに飛びます。また、価格は記事投稿時点のものです。 有料版と無料版の違いですが、アプリ内では「広告なしで使うことができる」としか書かれていません。違いがよくわからないので、基本的には無料版でじゅうぶんでしょう。 対応している言語は下記の通りですが、言語によっては動作が不安定なので注意が必要です。また、複数コンパイラがある場合は好きな方を自由に選ぶことができます。 C(CPP1.2.10、Clang6.0.0) C++(Clang6.0.0) JavaScript(Duktape2.2.0) Python(Python3.7.0) Lua(Lua5.3.4) 「モバイルC」というアプリ名なので当然C言語がメインに取り扱われていますが、PythonやJavaScriptなどにも対応しています。 とりあえずC言語で何か実行してみる ものは試し、とりあえずC言語で何か書いて実行してみます。まずはファイルを作成してみましょう。 ファイルの作成 トップ画面の上を見ると、何やら4つボタンが表示されています。 番号 説明 ① ファイルを作成 ② フォルダーを作成 ③ 設定 ?マーク ヘルプ まずは、①をタップしてファイルを作ります。 ファイル名は test.c にでもしておきましょう。 このとき、C言語ではなく他の言語を使いたい場合は拡張子を .py にしたり .js にしたりすればその言語で処理されます。 今回はC言語でプログラムするので拡張子は .c にします。 迷子対策に、ユーザーファイルの場所を記載しておきます。画面右下の家マークをタップしてもジャンプできます。 ユーザーファイル:data / CCR / UserFiles キーボードの使い方 編集画面になったら、画面の適当な場所をタップしてキーボードを表示させます。 デフォルトではモバイルC独自のキーボードが表示されます。 このキーボードに慣れるとまあまあ入力が早くなるので、とくにこだわりがなければこのキーボードを使いましょう。 キーボードの上には、ツールバーが表示されています。これが使いやすい。コピペ、切り取りなどが簡単にできます。 番号 説明 ① キーボードを閉じる ② OSのキーボードに切り替える ③ コピー・カット・ペースト ④ カーソル移動・選択 ⑤ 元に戻す・やり直し ⑥ 実行(コンパイル) ⑦ キーボード拡張 「モバイルCのキーボードがいやだ!」という人は②のボタンをタップしていつものキーボードに戻すこともできます。 ...

Posted 2020-08-05 ·  Updated 2024-03-19 ·  Konoka-Iori ·  Tech