本文整理汇总了C++中af::eval方法的典型用法代码示例。如果您正苦于以下问题:C++ af::eval方法的具体用法?C++ af::eval怎么用?C++ af::eval使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类af
的用法示例。
在下文中一共展示了af::eval方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: randu
TEST(JIT, CPP_Multi_pre_eval)
{
const int num = 1 << 16;
array a = randu(num, s32);
array b = randu(num, s32);
array x = a + b;
array y = a - b;
eval(x);
// Should evaluate only y
eval(x, y);
// Should not evaluate anything
// Should not error out
eval(x, y);
vector<int> ha(num);
vector<int> hb(num);
vector<int> hx(num);
vector<int> hy(num);
a.host(&ha[0]);
b.host(&hb[0]);
x.host(&hx[0]);
y.host(&hy[0]);
for (int i = 0; i < num; i++) {
ASSERT_EQ((ha[i] + hb[i]), hx[i]);
ASSERT_EQ((ha[i] - hb[i]), hy[i]);
}
}
示例2: gforSet
TEST(JIT, CPP_strided)
{
const int num = 1024;
gforSet(true);
array a = randu(num, 1, s32);
array b = randu(1, num, s32);
array x = a + b;
array y = a - b;
eval(x);
eval(y);
gforSet(false);
vector<int> ha(num);
vector<int> hb(num);
vector<int> hx(num * num);
vector<int> hy(num * num);
a.host(&ha[0]);
b.host(&hb[0]);
x.host(&hx[0]);
y.host(&hy[0]);
for (int j = 0; j < num; j++) {
for (int i = 0; i < num; i++) {
ASSERT_EQ((ha[i] + hb[j]), hx[j*num + i]);
ASSERT_EQ((ha[i] - hb[j]), hy[j*num + i]);
}
}
}
示例3: randn
TEST(JIT, ISSUE_1646)
{
array test1 = randn(10, 10);
array test2 = randn(10);
array test3 = randn(10);
for (int i = 0; i < 1000; i++) {
test3 += sum(test1, 1);
test2 += test3;
}
eval(test2);
eval(test3);
}
示例4: constant
TEST(JIT, CPP_JIT_HASH)
{
const int num = 20;
const float valA = 3;
const float valB = 5;
const float valC = 2;
const float valD = valA + valB;
const float valE = valA + valC;
const float valF1 = valD * valE - valE;
const float valF2 = valD * valE - valD;
array a = constant(valA, num);
array b = constant(valB, num);
array c = constant(valC, num);
eval(a);
eval(b);
eval(c);
// Creating a kernel
{
array d = a + b;
array e = a + c;
array f1 = d * e - e;
float *hF1 = f1.host<float>();
for (int i = 0; i < num; i++) {
ASSERT_EQ(hF1[i], valF1);
}
freeHost(hF1);
}
// Making sure a different kernel is generated
{
array d = a + b;
array e = a + c;
array f2 = d * e - d;
float *hF2 = f2.host<float>();
for (int i = 0; i < num; i++) {
ASSERT_EQ(hF2[i], valF2);
}
freeHost(hF2);
}
}