サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
any-programming.hatenablog.com
SSEやAVXを利用して処理を高速化する際に、メモリ領域がアラインされている必要があります。 アラインされた領域を確保するだけであれば_mm_mallocで可能ですが、_mm_freeを自分で呼ぶ必要があります。 今回はstd::vectorでアラインされた領域を確保できるようにしたいと思います。 IsAligned まず第一にメモリがアラインされているか確認する関数が必要です。 中身は至って簡単で、アドレス値がNで割り切れれば、NByteでアラインされています。 bool IsAligned(void* p, int n) { return (int)p % n == 0; } AlignedAllocator std::vectorには独自のアロケータを指定できます。 そこで、アラインされたメモリを確保するアロケータを定義します。 allocate、deallocate以外はほぼ定型文
作成するアプリケーション 簡単なカウンタアプリケーションをもとに説明していきます。 C#のWPFアプリケーションプロジェクトを想定しています。 従来方式での実装 ボタンに登録されたコールバック内にてcountを増減し、テキストにcountを設定する、といった実装となります。 Xaml <Window x:Class="Counter.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="100" Width="215"> <Grid> <Button Content="-" Click="buttonDecrement_Clic
このページを最初にブックマークしてみませんか?
『any-programming.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く