Skip to content

Mixed fixes#442

Merged
nouiz merged 5 commits intoTheano:masterfrom
abergeron:fixes
May 26, 2017
Merged

Mixed fixes#442
nouiz merged 5 commits intoTheano:masterfrom
abergeron:fixes

Conversation

@abergeron
Copy link
Copy Markdown
Member

Some accumulated small fixes. Most notably float16 is changed to a struct to avoid bad results.

Comment thread src/gpuarray_buffer_cuda.c Outdated
"#define ga_float float\n"
"#define ga_double double\n"
"#define ga_half ga_ushort\n"
"typedef struct _ga_half { ga_ushort data; } ga_half;\n"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

version bump? Do Theano tests still pass?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know about Theano, we would have to try.

@abergeron abergeron force-pushed the fixes branch 3 times, most recently from 39b624b to 3cd85ef Compare May 24, 2017 22:07
@abergeron
Copy link
Copy Markdown
Member Author

The latest commits will require some changes to Theano (mainly to remove the atomicAdd/Exch implementation in GpuAdvancedIncSubtensor1_dev20). These functions cheat a bit so they are affected by the structure change.

The tests with Theano are running so we'll see what else falls out.

@abergeron
Copy link
Copy Markdown
Member Author

There are 25 test failures in Theano. Two of those seem to have nothing to do with float16 but the others look like fallout from the struct change.

Given that, I'm not willing to make the change in a minor release. I would rather push this back to 0.7. The other fixes in the PR should be fine though. I can isolate them.

@nouiz
Copy link
Copy Markdown
Member

nouiz commented May 25, 2017 via email

@abergeron
Copy link
Copy Markdown
Member Author

I've removed the float16 commits from this. I'll check the failed tests in Theano for wrong results.

@abergeron
Copy link
Copy Markdown
Member Author

It seems that all of the failures in Theano come from something like this:

kernel void f(ga_half *res) {
  res[0] = __float2half_rn(value);
}

And the error is something like Can't store 'unsigned short' in 'struct _ga_half'

So there doesn't appear to be any wrong-results stuff hiding there, but we might want to flesh out the struct a bit to avoid having to do those conversions manually. I'll leave that for later.

@nouiz nouiz merged commit 27e0aff into Theano:master May 26, 2017
@abergeron abergeron deleted the fixes branch August 2, 2017 21:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants