首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Aparapi数据类型

Aparapi数据类型
EN

Stack Overflow用户
提问于 2016-04-22 04:43:17
回答 2查看 315关注 0票数 7

我已经关注了code来学习。

我的calculate函数在aparapi上运行时会产生意外的结果。

我的代码或aparapi有什么问题吗?

结果是;

代码语言:javascript
复制
Result      Num         Expected
2026982348  406816880   40681688012
2026982516  406816881   40681688180
2026982594  406816882   40681688258
2026982662  406816883   40681688326
2026982830  406816884   40681688494
2026982898  406816885   40681688562
2026982966  406816886   40681688630
2026983044  406816887   40681688708
2026983212  406816888   40681688876
2026983280  406816889   40681688944
2026983338  406816890   40681689002
2026983506  406816891   40681689170
2026983584  406816892   40681689248
2026983652  406816893   40681689316
2026983820  406816894   40681689484
2026983888  406816895   40681689552
2026983956  406816896   40681689620
2026984134  406816897   40681689798
2026984202  406816898   40681689866
2026984270  406816899   40681689934

编辑:如果我设置GPU或CPU,我会得到正确的结果(result == expected),但是在executionMode模式下有一个问题。我使用的是2013年末的macbook pro retina和windows10。

Edit2:我的calculate方法的返回行导致了这个问题。如果我返回Long.MAX_VALUE,它就能正常工作。但(long) tc * 100 (或((long) tc) * 100)没有给予(例如,40681688900)

EN

回答 2

Stack Overflow用户

发布于 2016-04-27 18:05:54

我认为你应该根据Aparapi Java Kernel Guidelines检查你的代码,特别是注意Other restrictions注意副作用部分。

记住要让你的代码尽可能的简单。

查看您的代码,在calculate方法中,您广泛使用了模运算符(%)。我建议你记录每个计算,以便能够比较你在JTP模式下得到的结果和在GPU模式下得到的结果,以便找出这个运算符是否有问题。

如果执行int value=2147483647; value++;,结果将是-2147483648,即所谓的Integer.MIN_VALUE。

Aparapi支持long和int值。

票数 2
EN

Stack Overflow用户

发布于 2016-12-31 00:16:20

您好,我是新的Aparapi.com和新的github存储库的主要维护者。我们在新的项目主页上更加活跃,甚至已经在maven central发布了十几个版本。你可能会考虑换成新的Aparapi。

说到这里,我是新的Aparapi的一名开发人员,运行了这个测试用例,并确认它是一个合法的Aparapi bug。我将调查导致错误的原因,并希望在下一次发布之前能为您修复错误。issue has been reported here,如果您想要跟踪它的话。对于新的Aparapi项目,请记住这一点,这样错误修复就不太可能出现在旧的Aparapi项目中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36780079

复制
相关文章

相似问题

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