@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそ、すべては、SystemC v0.9公開から始まった
NVC++では、標準的なC++にて、GPUでアクセラレート可能に。
- C++言語拡張
- pragmas
- diirectives
- non-standard libraries
も無しに。。。
PGI Compiler をベースにしたのかな?どんなんだろうか?
C++標準の下記の std::execution というの使えばいいようだが、そんなの知らなかったよ。いつ導入されたのよ。。。
std::execution::seq: Sequential execution. No parallelism is allowed.
std::execution::unseq: Vectorized execution on the calling thread (this execution policy was added in C++20).
std::execution::par: Parallel execution on one or more threads.
std::execution::par_unseq: Parallel execution on one or more threads, with each thread possibly vectorized.
これか。
ここから、引用します。
seq 逐次処理を実行し、並列化を行わない
par マルチスレッド化を許可する
par_unseq マルチスレッド化および・もしくはベクトル化を許可する
unseq ベクトル化を許可する
unseq は、C++20とあるんですが、、、
上にも (this execution policy was added in C++20). とあった。
ベンチマークでは、C++ on A100 と OpenACC on A100 でおぼ同じだと。
なお、Volta、Turing、Ampare しか対応していないって。TensorCore対応のGPUのみなんでしょうかね。
The NVC++ compiler can automatically offload C++ Parallel Algorithms to NVIDIA GPUs based on the Volta, Turing, or Ampere architectures.
Arm, OpenPOWER, or x86-64 CPUsから、将来的には、RISC-Vも入ってくるでしょうかね
Softekのサイトにも日本語の解説があります。
となっていますが、12月8日に下記のようなアナウンスがあり、ソフテックのHPCエンジニアリングに関する業務がプロメテック・ソフトウェアにご業務移管されたようです。