首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >微软加速器V2 - toArray2D问题

微软加速器V2 - toArray2D问题
EN

Stack Overflow用户
提问于 2010-01-13 18:05:11
回答 1查看 608关注 0票数 3

我是Microsoft.Accelerator的新手。看看下面的代码(它是F#,但它类似于C#):

代码语言:javascript
复制
type FPA = Microsoft.ParallelArrays.FloatParallelArray

let fi = List.init 9 (fun i -> new FPA(i, [|10;10|])) 
let process (fi: FPA list) : FPA list = fi // complicated function
let newfi = process fi
let target = new DX9Target()
for newf in newfi do printfn "%A" (target.toArray2D(newf))

基本上,我创建了一个FPA列表,并以这样的方式处理它:生成的newfi列表中的每个元素都依赖于fi列表中的所有元素。最后,我想得到最终的fi列表。我的问题是:我应该为结果FPA列表中的每个元素(FPA)调用toArray2D吗?在我看来,每次调用toArray2D都会运行整个计算,这非常耗时。

谢谢你的帮助。奥尔德里奇

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-14 01:14:32

FPA表示要执行的计算。您有两个这样的计算列表:finewfi。由于您定义事物的方式,newfi的每个元素都是一个计算,需要独立运行才能获得它的值;即使它是根据fi的公共底层元素定义的,也没有办法利用这一事实来仅计算底层fi值一次并重用它们。如果您希望这些fi计算只执行一次,则需要执行以下操作之一:

  1. 获取fi计算的结果(例如,通过使用toArray2D),并基于这些计算的结果构建newfi列表,该计算表示单个数组中的所有newfi值-您可能需要更聪明地组成这样的计算,但这可以允许您一次计算所有值,而无需重新计算fi值。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2055821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档