Skip to main content
欢迎来到PAWPAW技术文档网站了解更多信息

针对多个tile编程

上一个示例中,代码只针对单个tile。但是,大多数真实的应用程序会使用两个或更多的tile。使用C语言无法构建针对多个tile的应用程序(因为每个tile都是独立的处理器)。

要构建一个多tile的应用程序,必须提供一个顶层的、多tile的XC文件,以指定每个tile的入口点。运行在一个tile上的代码使用XCORE通道与另一个tile进行通信。

备注

多tile XC文件的语法类似于C语言。但是,它的语法并不单纯是C语言的超集。

提供一个多tile文件

要将代码放到XU316-1024-QF60-C24上的两个tile上,就需要提供一个我们称之为multitile.xc的文件。下面是一个例子:

multitile.xc
#include <platform.h>

extern "C" {

void main_tile0();
void main_tile1();

}

int main(void)
{
par {
on tile[0]: main_tile0();
on tile[1]: main_tile1();
}

return 0;
}

这个multitile.xc引用了main.c中的两个函数:

main.c
#include <stdio.h>

void main_tile0()
{
printf("Hello from tile 0\n");
}

void main_tile1()
{
printf("Hello from tile 1\n");
}

现在在硬件上构建并执行这个多tile应用程序,以查看打印输出:

$ xcc -target=XU316-1024-QF60-C24 multitile.xc main.c
$ xrun --io a.xe
Hello from tile 0
Hello from tile 1

总结

在这个例子中,你使用了XC语言的声明性组件来将两个C函数部署到一个XCORE.AI处理器的两个不同的tile上。

在这一点上,你可以继续下一个主题,或者你可以选择进一步探索这个例子: