SSブログ

SIMDライブラリの行列とクォータニオン [Swiftプログラミング]

CPUが持っているベクトルユニットを陽に使うためのSIMDライブラリの一部が、Swift Standard Libraryの中に取り込まれていることをこないだ確認した。アセンブラを見ると作業量が少ない場合は、Standard Libraryにある関数を呼ぶのではなく、ベクトルユニットの命令が直接インライン展開されていることがわかる。ソースは確認してないので実際にどうなのかはわからないけど、@inlinable属性がついていてその通りのコードが出力されているということだろう。

またこのStandard Libraryとは別に
import simd
で、SIMD関連の追加がされることを知った。simdのインポートによって4次元までのベクトルと行列の基本的な演算がいろいろ可能になる。ちょっとだけ前回の追加...

続きを読む


nice!(0)  コメント(0) 

クラシック音楽館のアンスネス [クラシック]

今日のEテレのクラシック音楽館でモーツァルトのピアノ協奏曲21番をアンスネスのソロでやってた。このアンスネスはすごくよかった。ナマで聴きたかった。

よく制御されたタッチの音色がほんとに美しい。クレシェンドデクレシェンドも滑らかで毛羽立つことがない。昔、僕が子供の頃はこの曲をすごく甘い音色でやるのをよく聴いた。そういうのとは違って明晰で、なによりも気張らず偉そぶらない素直さが伝わってくる。人柄なのかもしれない。フィナーレでのオーケストラの木管楽器とのやったりとったりも全く自然で聴いていて気持ちいい。

アンコールではまさかモンポウをやるとは思わなかった。僕はモンポウが大好きで、もっと評価されていい作曲家だと思っている。モンポウは何気ない土着の歌に思いがけず普遍性が内在するような曲をたくさん書いている。このアンコールの曲のように、ほんとに何気ない短い曲ばかりで、しかもいかにもこてこてのスペイン風という感じなんだけど、どこか深いところにふと触れられるようなところがあって引き込まれてしまう。アリシア・デ・ラローチャが死んでモンポウ弾きが絶えてしまって寂しいと思っていた。アンスネスがみっちりやってくれると嬉しいんだけど。

やっぱりアンスネスはナマで聴きたいな。ずっと前からドビュッシーだったら必ず行こうと思ってたんだけど、モンポウやらないかな。それなら絶対聴きに行くのにな。
nice!(1)  コメント(2) 

SIMDがStandard Libraryに [Swiftプログラミング]

こないだSwiftの勉強で光線追跡エンジンを書き直してる話を書いた。そこでは勉強なのでベクトル行列演算もベタに自分で書いてたけど、Objective-Cで書いたやつではAccelerate frameworkを呼んでいる。よく見るとSwiftのStandard LibraryにSIMDが入っている。知らなかった。

SIMDはもともとCPUのベクトルユニット使うためのライブラリで、昔は確かAccelerate frameworkの一部だったと思う(一番最初は、懐かしいAltiVecを使い倒すために導入されたと覚えている)。整数や浮動小数点数を4つなり8つなりまとめて、ベクトルユニットが可能な演算を定義してあった。

今見ると、Accelerateからは独立してるようである。Swift Standard Libraryに入れるためにそうなったんだろうか。Metalのshaderにも構造体が流用されているようなので、その関係なんだろうか。Swift Standard LibraryのSIMDドキュメントはかなり簡素でこれだけ見てもなかなかよくわからない。たぶんAccelerateにあったやつのラッパになってるんだろうと思う。僕は昔ならいざ知らず今後SIMDを単独で積極的に使うことはあまりないとは思うんだけど、Swiftの勉強になりそうなので詳しく見てみる....

続きを読む


nice!(0)  コメント(0) 

世界はすべてアナログである [日常のあれやこれや]

今でもデジタル嫌いの人がいる。僕のまわりにもそういう人がまだいる。僕が昔、CD用の対物レンズをやっていたころ、CD嫌いの人に直接間接問わずたくさん出会った。彼らの主張の多くは簡単にいうとデジタルによる音は良くない(正確には「気に入らない」)だった。ときどき反論することもあったけど、そのとき僕はうまく説明することができなかった。

今では所詮好き嫌いの情緒的なもので、僕に直接の影響がない限りはうるさくいうつもりはまったくない。でも、ときどき出会う「デジタルとアナログの違い」といった説明には、今でも違和感を覚えることが多い。特に実際的な場面での「アナログ」と「デジタル」は次元の違うもので対比するものではない、と僕は思っている....

続きを読む


nice!(1)  コメント(0) 

またSwiftでわからないことが [Swiftプログラミング]

昔Objective-Cで書いたアプリをSwiftに書き直しながらSwiftの勉強をしょぼしょぼ続けている。でも単に逐語的に変換したのではSwiftの勉強にはならないので、Swiftらしい言い回しになるように考えながらやってる。CodeWarriorのC++からObjective-Cに切り替えるときもそうやって苦労した。そんなことしてると全然進まない。慌てることはないとは言うものの、仕事でもmacOSに書くことがある(というかソフトウェアで解決しないといけないことはよくあってそのときは僕にはmacOSしかない)ので、いつまでもObjective-Cというわけにはいかない。悩ましい。

古いのを書き直してる中でまたよくわからないことに出くわした....

続きを読む


nice!(0)  コメント(0) 

半角カナ [日常のあれやこれや]

本当にどうでもいいことなんだけど、ふとさっき思い出したこと。カタカナに必ず半角カナを使う人が今の会社にいる。僕が今の会社に移ってすぐ、彼から送られてくるメールは必ずそうなっていたので、なにかそういう設定のメーラがあるのかな、と思っていたら、そのあと彼から送られてきたぱわぽの資料の中のカタカナも半角カナになっていた。つまりそうしようと思って半角カナを使ってるとしか考えられないので、なんだかそういう趣味の人なんだ、と理解した。

ずっと昔(たぶん1995年ごろ)、Windowsが急に多くの人に使われるようになってきて、そういう人たちもメールを使うようになって、やり取りするようになったとき、文字エンコードやその他の違いによる問題のしわ寄せがunix/Macユーザに来た(当時はまだMacに寛容な会社だったが、あれよあれよと言う間にunix/Macユーザは少数派になった。ちなみに当時の社内外の有志の努力によってVAXワークステーションのユーザは1980年代後半にメールなどは使えるようになっていた。MacもLocalTalkポートを持ったSONY NEWSの一部の機種のおかげで外部とのメールなどのやりとりができた)。Windowsユーザの間では問題ないのにMacで受け取ると文字化けして読めないことがよくあった...

続きを読む


nice!(1)  コメント(4) 

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。