本文整理汇总了C++中af::freeHost方法的典型用法代码示例。如果您正苦于以下问题:C++ af::freeHost方法的具体用法?C++ af::freeHost怎么用?C++ af::freeHost使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类af
的用法示例。
在下文中一共展示了af::freeHost方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: sparseCompare
void sparseCompare(array A, array B, const double eps)
{
// This macro is used to check if either value is finite and then call assert
// If neither value is finite, then they can be assumed to be equal to either inf or nan
#define ASSERT_FINITE_EQ(V1, V2) \
if(std::isfinite(V1) || std::isfinite(V2)) { \
ASSERT_NEAR(V1, V2, eps) << "at : " << i; \
} \
array AValues = sparseGetValues(A);
array ARowIdx = sparseGetRowIdx(A);
array AColIdx = sparseGetColIdx(A);
array BValues = sparseGetValues(B);
array BRowIdx = sparseGetRowIdx(B);
array BColIdx = sparseGetColIdx(B);
// Verify row and col indices
ASSERT_EQ(0, max<int>(ARowIdx - BRowIdx));
ASSERT_EQ(0, max<int>(AColIdx - BColIdx));
T *ptrA = AValues.host<T>();
T *ptrB = BValues.host<T>();
for(int i = 0; i < AValues.elements(); i++) {
ASSERT_FINITE_EQ(real(ptrA[i]), real(ptrB[i]));
if(A.iscomplex()) {
ASSERT_FINITE_EQ(imag(ptrA[i]), imag(ptrB[i]));
}
}
freeHost(ptrA);
freeHost(ptrB);
#undef ASSERT_FINITE_EQ
}
示例2: 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);
}
}