Tag: intel mic

如何将单个应用程序的特定线程卸载到特定的Xeon Phi核心?

假设我在主机上运行了一个c / c ++应用程序。 主机CPU上运行的线程很少,Xeon Phi内核上运行50个线程。 我怎样才能确保这些50中的每一个都运行在自己的Xeon Phi核心上,并且永远不会从核心缓存中清除(考虑到代码足够小)。 有人可以概述一个非常笼统的想法如何做到这一点以及哪个工具/ API更适合(对于C / C ++代码)? 在主机线程聚合器和50个Phi线程之间交换数据的最快方法是什么? 鉴于实际的并行性将非常有限 – 这个应用程序将更像51线程平面应用程序与一些基本的multithreading数据同步。 我可以使用传统的C / C ++编译器来创建这样的应用程序吗?

英特尔Phi的MKL性能

我有一个例程,在小矩阵(50-100 x 1000个元素)上执行一些MKL调用以适合模型,然后我调用不同的模型。 在伪代码中: double doModelFit(int model, …) { … while( !done ) { cblas_dgemm(…); cblas_dgemm(…); … dgesv(…); … } return result; } int main(int argc, char **argv) { … c_start = 1; c_stop = nmodel; for(int c=c_start; c<c_stop; c++) { … result = doModelFit(c, …); … } } 调用上面的版本1.由于模型是独立的,我可以使用OpenMP线程来并行化模型拟合,如下所示(版本2): int main(int argc, char **argv) […]