“每个XS1设备有八个线程可以在它的每一个处理器的极限,一个程序尝试超过这个限制是无效的。”
我知道有XS1器件/芯片具有1或2tile及每tile4到8个逻辑核心...
究竟是什么意思,在编程指南中的术语“处理器”?
“1个处理器= 1tile',恰好1线程= 1的逻辑核心?=> 4或每tile8个线程?
或
“1处理器= 1的逻辑核心”和每个分别能运行8个线程?=> 每tile32或64个线程?
或者 是别的意思?
回答1:
每个tile(核心/处理器),拥有最高的8个逻辑核心(线程)。
...除非你有一个tile支持不超过8个逻辑内核。
例如。L4在它的tile上只有4个逻辑核心。
回答2:
其实我用谷歌搜索发现这个指南,我不知道在XMOS的网站上它在哪。
我的引用可以在“XC并发”中找到 - > “创建并发线程”的一部分。
还有一个关于它的代码示例:
par {
on stdcore[0] : uartTX(tx);
on stdcore[0] : uartRX(rx);
on stdcore[1] : lcdDrive(lcdData);
on stdcore[2] : kbListen(keys);
}
所以,如果每个逻辑核心可以运行只有一个线程,指定什么用“stdcore(0)”?
因为他们的“stdcore(0)”运行多个(二)线程,因此这不得不tile0?
描述说:
“其中两个线程都在XCore 0,一个在XCore 1执行,一个在XCore 2”。
因此,这实际上意味着两个在tile0,一个在tile1,一个在tile2?
这是否正确?
这段代码是否仍然有效?
或者是整个指南已经过时?
回答3:
根据新的命名方案用'tile取代'stdcore'。从上面的标准陈述,两个逻辑内核一个运行在tile 0一个运行在tile 1,其他的运行在tile 2.该代码在双tile设备是无效的。