カテゴリー別アーカイブ: その他

OpenCLをVisualStudio2017で使う (Intel SDK)

AI的な文脈でOpenCLに興味を持ったので、最近OpenCL in Actionという本を読んでいる。OpenCLとはなんぞやという全体像をきちんと掴みたくて読み始めた。

とはいえ、450ページもあって読んでいるうちにたまに眠くなるので、少しは手を動かしたほうがいいと思って、とりあえずVisual Studio2017でOpenCLを試してみることにした。

今使っているWindowsマシンはSurface Pro4。デバイスマネージャを見ると、GPUはIntelのHD Graphic520だったので、IntelのOpenCL SDKを下記からダウンロードしてインストールした。
https://software.intel.com/en-us/intel-opencl/download

SDKを入れてVisual Studioを立ち上げると見慣れないメニューが追加されている。Core-Builder。そこからPlatform Infoを選ぶと、下記のようにデバイスの一覧が取得できる。

ss-vs2017-01

さらに、デバイスを選択してプロパティを表示すると下記のように各種情報が確認できる。
ss-vs2017-02

次に、APIがきちんとインストールされていることを確認するために、Intelのこちらのページからサンプルプログラムをダウンロードして、Visual Studioでビルドする。使用するプログラムは主にclGetDeviceInfoを使用してさっきプロパティで表示されたような内容を取得するものでOpenCL1.2 samples for WindowsからPlatform/Device Capabilities Viewer Sampleというもの。

ちなみに、Visual Studio2017用のソリューションファイルが提供されていないので2015のものを使用した。2015版から2017版へビルド周りの設定をコンバートするように促されるので変換して使用する。ビルドが成功すれば、APIが問題なくインストールされているということ。

このサンプルプログラムをVisual Studioのビルドから実行すると出力が流れてDOS窓が消えて何もわからないけれど、コマンドラインから実行するとclGetDeviceInfoで取得されたGPUの各情報を確認できる。


CL_DEVICE_TYPE_GPU[0]
CL_DEVICE_NAME: Intel(R) HD Graphics 520
CL_DEVICE_AVAILABLE: 1
CL_DEVICE_VENDOR: Intel(R) Corporation
CL_DEVICE_PROFILE: FULL_PROFILE
CL_DEVICE_VERSION: OpenCL 2.0
CL_DRIVER_VERSION: 21.20.16.4627
CL_DEVICE_OPENCL_C_VERSION: OpenCL C 2.0
CL_DEVICE_MAX_COMPUTE_UNITS: 24
CL_DEVICE_MAX_CLOCK_FREQUENCY: 1000
CL_DEVICE_MAX_WORK_GROUP_SIZE: 256
CL_DEVICE_ADDRESS_BITS: 32
CL_DEVICE_MEM_BASE_ADDR_ALIGN: 1024
CL_DEVICE_MAX_MEM_ALLOC_SIZE: 1561123226
CL_DEVICE_GLOBAL_MEM_SIZE: 1561123226
CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE: 1561123226
CL_DEVICE_GLOBAL_MEM_CACHE_SIZE: 524288
CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE: 64
CL_DEVICE_LOCAL_MEM_SIZE: 65536
CL_DEVICE_PROFILING_TIMER_RESOLUTION: 83
CL_DEVICE_IMAGE_SUPPORT: 1
CL_DEVICE_ERROR_CORRECTION_SUPPORT: 0
CL_DEVICE_HOST_UNIFIED_MEMORY: 1
CL_DEVICE_EXTENSIONS: cl_intel_accelerator cl_intel_advanced_motion_estimation cl_intel_d3d11_nv12_media_sharing cl_intel_driver_diagnostics cl_intel_dx9_media_sharing cl_intel_motion_estimation cl_intel_packed_yuv cl_intel_required_subgroup_size cl_intel_simultaneous_sharing cl_intel_subgroups cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_d3d10_sharing cl_khr_d3d11_sharing cl_khr_depth_images cl_khr_dx9_media_sharing cl_khr_fp16 cl_khr_fp64 cl_khr_gl_depth_images cl_khr_gl_event cl_khr_gl_msaa_sharing cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_gl_sharing cl_khr_icd cl_khr_image2d_from_buffer cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_mipmap_image cl_khr_mipmap_image_writes cl_khr_spir cl_khr_subgroups
CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT: 4
CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG: 1
CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT: 1
CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE: 1
CL_DEVICE_NATIVE_VECTOR_WIDTH_INT: 4
CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG: 1
CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT: 1
CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE: 1

 

VagrantでMacOSX上の仮想マシンにCentOSをインストールしてみた

色々自分でWebサービスを構築することを勉強し始めたら、仮想化がすごく便利な気がしてきたので試してみることにしました。

ドットインストールの手順に従っただけだけど、バージョンや引っかかった点のメモなどに。

続きを読む

 

MacOSX上のRedmine Backlogでnokogiriがライブラリエラーを吐くのでinstall_name_toolで対応した

非IT系のエンジニアな私ですが、ソフトウェア開発で取り入れられているAgile開発に憧れる今日このごろ。Agileのひとつと言われる「スクラム」開発を実現できないかとRedmineのプラグイン「Backlog」を試すことにしました。環境はとりあえずmacのローカル環境です。

すでにインストールを済ませていたRedmineに入れようとしたら、gemのnokogiriが参照しているライブラリが存在しなくて怒られました。以下、その対処。

続きを読む

 

[AppleScript] Finderで選択したフォルダを一瞬でターミナル上に開くスクリプト

Finderで見ているフォルダをターミナルですぐに開きたいと思う事がよくあります。

例えば、

  • ログなどの長いテキストファイルをDropboxで共有しているときにlessコマンドで見たいとき
  • 圧縮ファイルを解凍したフォルダをターミナルで確認したいとき
  • ワイルドカードを使ってファイルを移動させたいとき

などなど。

こういうときに、ターミナルを起動してcdコマンドで移動するのはすごく面倒。これを右クリックから1発で実現できるようにしました。
続きを読む

 
twitteruser_v0.1_input

Twitter友達紹介用にぷちブックマークレットを作ってみた

Twittert友達のアカウント名をブログで紹介するとき用に、ちょっと便利なブックマークレットを作ってみました。http://twitter.com/usernameというリンクを含んだのHTMLタグを吐くだけの超ぷちブックマークレットです。

使用方法

起動すると上のようなダイアログが表示されます。リンクを作りたいTwitterのusernameを入力してOKをクリックしてください。すると、

<a href=”http://twitter.com/username”>@username</a>さん

というタグが吐かれます。

これをHTMLタグとして埋めこむとこんな感じになります。(見た目はCSS次第ですよ)
@mjtwさん

ちなみに注意点がひとつあって、入力したusernameが存在するかどうかはチェックさせていません。スキルがあれば、その手のチェックやアイコン画像を採りにいったりなど色々盛り込みたいところですが、とりあえず、こんなもんです。

インストールはこちらをどうぞ

下のリンクをブックマークバーなどにドラッグアンドドロップしてください。
TwitterUser_v0.1

必要は発明の母?

実は、これを作ったのはこちらのオフ会参加記録を書く時に、参加者全員のTwitterアカウントを全部手入力で紹介するのは骨が折れるなと思ったから。みなさんがこれを使ってオフレポをいっぱい書いてくれるとうれしいです。しょぼいですが是非使ってください。