メニュー

技術ブログ

Denso IT Lab.社員による技術情報の紹介

Denso IT Laboratory researcher's blog sites

数式

RSS

ページトップへ

//publish/ ハッカソンでMetro Traffic Simulatorをuniversal にしてpublishしました。

 

 

今回の//publish/イベントでは、締切前2週間にあたる5/17、18のあたりで全世界の会場にて同時にハッカソンイベントを開催していました。ハッカソンイベントでは、様々なアプリケーションがpublish(ストアへの投稿)され、全世界で数百を超えるまでになりました。日本のイベントは品川で行われました。参加者はだいたい30名程度。どこかのイベントでお知り合いになった人も多く、和気あいあいとして雰囲気で楽しく開発ができました。

今回私の方でpublishしたのは、既にWindows 8.1用として公開していたMetro Traffic Simulatorアプリをuniversal 化をしたものです。universal Windows Appsは、これまで全く別の扱いだった、Windows 8.1用のWindows Storeと、Windows Phone 8.1用のWindows Phone Store上でのアプリケーションを一体のものとして、ダウンロードや購入について同じものとみなしたり、通知などのIDを共有したりして、この二つのプラットフォーム間の同期をスムーズに行うためのものです。すこし前から準備はしていたのですが、publishの仕方がいまいちわからず、手こずりましたがこれは前のpostにあるような形でVisual Studioから順当にできることを発見しました。そして、1回のリジェクトの後(これは大した原因では無かったです)無事universalとして公開することができました。

 

一つのアプリケーションIDで以下二つのアプリケーションがそれぞれのストアに登録されていることになります。

ロゴMetro Traffic Simulator@ image

Metro Traffic SimulatorMetro Traffic Simulator @ image

またuniversal Windows Appsの場合は、以下のようにストアで、”Get once, download on compatible Windows Phone too”などという文言とシグネチャが表示されます。

これで少し注目度がアップするのではないでしょうか?

 

image

ハッカソンではコンテストが行われましたが、Metro Traffic Simulator が”Best Cross Platform App”部門(universal Windows Appが対象)で1位を受賞しました!

長期間開発してきたアプリケーションを出して良いのか迷いましたが、アプリケーションのアピールする目的で提出しましたので、注目されるという意味では良かったと思います。

頂いた景品は、このアプリケーションの開発、普及活動の一環として活用させて頂ければと思います。

引き続き本戦への投稿も進めているので、もしよかったらダウンロードをしてみてください。

image

p.s. 手違いでWindows Phone版は英語ストアのみのリリースとなってしまいました。修正して近々アップデートします。

このエントリーをはてなブックマークに追加

Windows 8アプリをuniversalにして投稿する

 

Microsoftが全世界で開催している、//publish/というアプリコンテストに、最近公開したWindows 8.1用アプリ、Metro Traffic Simulatorをダメ元で応募してみました。アプリケーションは使われて初めて意味が出てくるわけで、少なくとも多少のアピールにはなろう、というのが狙いです。(ちょうど良いタイミングだったのですが、投稿済みのアプリを申請したので、そもそもレギュレーションに合致しないかもしれません。)

そのコンテストの締切に先駆けて、ハッカソンイベントが行われていたので、出向いてきました。アプリは投稿済みですので、publishしようがないため、このアプリをuniversal Windows Appsにして、Windows Phoneアプリを追加で投稿することにしました。これも、すでにほぼ開発済みでしたので、会場ではpublishすることに専念しました。(ずるいことをしています。。。)

このpublishなのですが、Windows Storeアプリをuniversalにするっていうのは、Visual Studio上での開発については、MSDNなどの文書やblogなどですでに解説記事も多く出ているものの、最後に投稿をする手順というのはあまり語られていないように思いました。実際に探してみたものの、すぐには見つかりませんでしたので、えいや、とやってみました。


今後Windows StoreアプリがWindows Phoneアプリに、Windows PhoneアプリがWindows Storeアプリにやってくる場面が多くなると思われます。

このエントリーをはてなブックマークに追加

C++ AMPの実力を試す

Microsoft が C++ AMPを大々的に発表したのは 2011年の//build/前くらいでしょうか?当時build開場のAMDブースで説明をされていたので、AMDと歩調を合わせた環境なのか、と思っていましたが、MicrosoftによるとCPU,GPUの適用範囲はDirectXのそれと同じで広く、またWindows 以外の環境にも広めたいと思っているようです。

現状手もとのプログラムはC#で開発していますが、どうしても大規模な数値演算はC#ではSIMD命令やGPGPUの恩恵をそのまま受けられません。OpenCLやDirect ComputeのC#ラッパーなどが存在するようですが、ラップされてもかなり特殊な環境であることには変わりありません。

C++ AMPの解説にC#から呼び出すというものがあり、比較的簡単に見えたので、Interop呼び出しをした場合に、どの程度のパフォーマンスが出るかをMatrix Multで試してみました。

C++ AMP (Developer Reference) 本を購入したのですが、そのサンプルがCodePlex にあります。この中に行列積のコードがあったのですが、これを実行すると、何と手元のマシンでも通常のシングルコアCPU処理と比べて100倍のスピードが出ているという結果になりました。でもこのコードよく見るとvectorを使ったり、いろいろフェアじゃない分部がありそうでしたので、プレーンなコードに治しましたら、だいたい以下のような感じになりました。

C# multi, C++ multi はもっとも外側のループをparallel forしたもの。AMP WARPはampコードをCPU SIMDプロセッサを使ってエミュレートしたもの。TiledというのはGPUの構成に合わせてタイルサイズを指定したものです。

image

Surface Pro 2(Intel Core i5 4300U) と ショップブランドマシン(AMD Kaveri A10-7850K)を使いました。2コア、4コアのCPUなので、parallel forの結果は妥当なものかと思います。GPUは、このクラスのGPUとしては十分な性能が出ているといえるでしょうか?行列サイズが十分大きいことが条件ですが、シングル実行の2~5倍程度、C#での実行と比較すると10倍近い性能がでるというのは、十分導入に値するといえるでしょう。

GPGPUの世界もぐっと身近になって、様々な言語への対応も望まれますね。そういえばbuild 2014ではC#のSIMD対応やコンパイラの話がホットだったなぁ。

このエントリーをはてなブックマークに追加