{"action":"closed","issue":{"url":"https://api.github.com/repos/NVlabs/cub/issues/59","repository_url":"https://api.github.com/repos/NVlabs/cub","labels_url":"https://api.github.com/repos/NVlabs/cub/issues/59/labels{/name}","comments_url":"https://api.github.com/repos/NVlabs/cub/issues/59/comments","events_url":"https://api.github.com/repos/NVlabs/cub/issues/59/events","html_url":"https://github.com/NVlabs/cub/issues/59","id":176250578,"number":59,"title":"cub::DeviceScan::ExclusiveSum can't prefix sum of float into double","user":{"login":"sh1ng","id":2821871,"avatar_url":"https://avatars.githubusercontent.com/u/2821871?v=3","gravatar_id":"","url":"https://api.github.com/users/sh1ng","html_url":"https://github.com/sh1ng","followers_url":"https://api.github.com/users/sh1ng/followers","following_url":"https://api.github.com/users/sh1ng/following{/other_user}","gists_url":"https://api.github.com/users/sh1ng/gists{/gist_id}","starred_url":"https://api.github.com/users/sh1ng/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sh1ng/subscriptions","organizations_url":"https://api.github.com/users/sh1ng/orgs","repos_url":"https://api.github.com/users/sh1ng/repos","events_url":"https://api.github.com/users/sh1ng/events{/privacy}","received_events_url":"https://api.github.com/users/sh1ng/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-09-11T15:59:43Z","updated_at":"2016-11-23T17:20:27Z","closed_at":"2016-11-23T17:20:27Z","body":"To increase accuracy(in my case array has 100M elements and it's noticeable) I'd like to store result of into double*, but I'm getting following complication error\n\ncode https://github.com/sh1ng/arboretum/blob/master/src/core/garden.cu#L314\n\n/Users/sh1ng/Projects/cub/cub/agent/agent_scan.cuh:351: error: no instance of overloaded function \"cub::BlockStore<OutputIteratorT, BLOCK_DIM_X, ITEMS_PER_THREAD, ALGORITHM, BLOCK_DIM_Y, BLOCK_DIM_Z, PTX_ARCH>::Store [with OutputIteratorT=double *, BLOCK_DIM_X=128, ITEMS_PER_THREAD=12, ALGORITHM=cub::BLOCK_STORE_WARP_TRANSPOSE, BLOCK_DIM_Y=1, BLOCK_DIM_Z=1, PTX_ARCH=610]\" matches the argument list\n            argument types are: (double *, float [12])\n            object type is: cub::BlockStore<double *, 128, 12, cub::BLOCK_STORE_WARP_TRANSPOSE, 1, 1, 610>\n          detected during:\n            instantiation of \"void cub::AgentScan<AgentScanPolicyT, InputIteratorT, OutputIteratorT, ScanOpT, IdentityT, OffsetT>::ConsumeTile<IS_FULL_TILE>(OffsetT, OffsetT, int, OffsetT, cub::AgentScan<AgentScanPolicyT, InputIteratorT, OutputIteratorT, ScanOpT, IdentityT, OffsetT>::ScanTileStateT &) [with AgentScanPolicyT=cub::DispatchScan<float *, double *, cub::Sum, float, int>::PtxAgentScanPolicy, InputIteratorT=float *, OutputIteratorT=double *, ScanOpT=cub::Sum, IdentityT=float, OffsetT=int, IS_FULL_TILE=true]\"\n(372): here\n            instantiation of \"void cub::AgentScan<AgentScanPolicyT, InputIteratorT, OutputIteratorT, ScanOpT, IdentityT, OffsetT>::ConsumeRange(int, cub::AgentScan<AgentScanPolicyT, InputIteratorT, OutputIteratorT, ScanOpT, IdentityT, OffsetT>::ScanTileStateT &) [with AgentScanPolicyT=cub::DispatchScan<float *, double *, cub::Sum, float, int>::PtxAgentScanPolicy, InputIteratorT=float *, OutputIteratorT=double *, ScanOpT=cub::Sum, IdentityT=float, OffsetT=int]\"\n../cub/cub/device/dispatch/dispatch_scan.cuh(127): here\n            instantiation of \"void cub::DeviceScanSweepKernel<ScanPolicyT,InputIteratorT,OutputIteratorT,ScanTileStateT,ScanOpT,IdentityT,OffsetT>(InputIteratorT, OutputIteratorT, ScanTileStateT, ScanOpT, IdentityT, OffsetT) [with ScanPolicyT=cub::DispatchScan<float *, double *, cub::Sum, float, int>::PtxAgentScanPolicy, InputIteratorT=float *, OutputIteratorT=double *, ScanTileStateT=cub::ScanTileState<float, true>, ScanOpT=cub::Sum, IdentityT=float, OffsetT=int]\"\n../cub/cub/device/dispatch/dispatch_scan.cuh(543): here\n            instantiation of \"cudaError_t cub::DispatchScan<InputIteratorT, OutputIteratorT, ScanOpT, IdentityT, OffsetT>::Dispatch(void *, size_t &, InputIteratorT, OutputIteratorT, ScanOpT, IdentityT, OffsetT, cudaStream_t, __nv_bool) [with InputIteratorT=float *, OutputIteratorT=double *, ScanOpT=cub::Sum, IdentityT=float, OffsetT=int]\"\n../cub/cub/device/device_scan.cuh(156): here\n            instantiation of \"cudaError_t cub::DeviceScan::ExclusiveSum(void *, size_t &, InputIteratorT, OutputIteratorT, int, cudaStream_t, __nv_bool) [with InputIteratorT=float *, OutputIteratorT=double *]\"\nsrc/core/garden.cu(314): here\n            instantiation of \"void arboretum::core::GardenBuilder<node_type>::FindBestSplits(int, const arboretum::io::DataMatrix *, const thrust::host_vector<float, thrust::system::cuda::experimental::pinned_allocator<float>> &) [with node_type=unsigned short]\"\nsrc/core/garden.cu(135): here\n            instantiation of \"void arboretum::core::GardenBuilder<node_type>::GrowTree(arboretum::core::RegTree *, const arboretum::io::DataMatrix *, const thrust::host_vector<float, thrust::system::cuda::experimental::pinned_allocator<float>> &) [with node_type=unsigned short]\"\nsrc/core/garden.cu(105): here\n            instantiation of \"arboretum::core::GardenBuilder<node_type>::GardenBuilder(const arboretum::core::TreeParam &, const arboretum::io::DataMatrix *) [with node_type=unsigned short]\"\nsrc/core/garden.cu(509): here\n"}}
{"actor":{"display_login":"dumerrill"}}