diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,8 +10,14 @@
 because NVIDIA are A-OK introducing breaking changes in minor updates.
 
 
-## [next]
+## [0.10.2.0] - 2020-08-26
 ### Added
+  * Add support for CUDA-10.2
+  * Add support for Cabal-3
+  * Add device properties for SM7.x, SM8
+
+## [0.10.1.0] - 2019-04-29
+### Added
   * Add support for CUDA-10.1
 
 ### Changed
@@ -154,7 +160,8 @@
   * Add functions from CUDA-6.5
 
 
-[next]:       https://github.com/tmcdonell/cuda/compare/v0.10.0.0...HEAD
+[0.10.2.0]:   https://github.com/tmcdonell/cuda/compare/v0.10.1.0...v0.10.2.0
+[0.10.1.0]:   https://github.com/tmcdonell/cuda/compare/v0.10.0.0...v0.10.1.0
 [0.10.0.0]:   https://github.com/tmcdonell/cuda/compare/0.9.0.3...v0.10.0.0
 [0.9.0.3]:    https://github.com/tmcdonell/cuda/compare/0.9.0.2...0.9.0.3
 [0.9.0.2]:    https://github.com/tmcdonell/cuda/compare/0.9.0.1...0.9.0.2
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -20,5 +20,43 @@
 
 For important information on installing on Windows, see:
 
-  <https://github.com/tmcdonell/cuda/blob/master/WINDOWS.markdown>
+  <https://github.com/tmcdonell/cuda/blob/master/WINDOWS.md>
+
+
+## Missing functionality
+
+An incomplete list of missing bindings. Pull requests welcome!
+
+### CUDA-9
+
+- cuLaunchCooperativeKernelMultiDevice
+
+### CUDA-10.0
+
+- cuDeviceGetLuid (windows only?)
+- cuLaunchHostFunc
+- cuGraphHostNode[Get/Set]Params
+- cuGraphKernelNode[Get/Set]Params
+- cuGraphMemcpyNode[Get/Set]Params
+- cuGraphMemsetNode[Get/Set]Params
+
+### CUDA-10.2
+
+- cuDeviceGetNvSciSyncAttributes
+- cuMemAddressFree
+- cuMemAddressReserve
+- cuMemCreate
+- cuMemExportToShareableHandle
+- cuMemGetAccess
+- cuMemGetAllocationGranularity
+- cuMemGetAllocationPrepertiesFromHandle
+- cuMemImportFromShareableHandle
+- cuMemMap
+- cuMemRelease
+- cuMemSetAccess
+- cuMemUnmap
+- cuGraphExecHostNodeSetParams
+- cuGraphExecMemcpyNodeSetParams
+- cuGraphExecMemsetNodeSetParams
+- cuGraphExecUpdate
 
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -64,7 +64,6 @@
 main = defaultMainWithHooks customHooks
   where
     readHook get_verbosity a flags = do
-        noExtraFlags a
         getHookedBuildInfo (fromFlag (get_verbosity flags))
 
     preprocessors = hookedPreProcessors simpleUserHooks
@@ -105,7 +104,6 @@
           currentPlatform = hostPlatform lbi
           compilerId_     = compilerId (compiler lbi)
       --
-      noExtraFlags args
       generateAndStoreBuildInfo
           verbosity
           profile
@@ -196,7 +194,11 @@
     , extraLibDirs        = extraLibDirs'
     , frameworks          = frameworks'
     , extraFrameworkDirs  = frameworkDirs'
+#if MIN_VERSION_Cabal(3,0,0)
+    , options             = PerCompilerFlavor (if os /= Windows then ghcOptions else []) []
+#else
     , options             = [(GHC, ghcOptions) | os /= Windows]
+#endif
     , customFieldsBI      = [c2hsExtraOptions]
     }
 
diff --git a/cuda.cabal b/cuda.cabal
--- a/cuda.cabal
+++ b/cuda.cabal
@@ -1,5 +1,5 @@
 Name:                   cuda
-Version:                0.10.1.0
+Version:                0.10.2.0
 Synopsis:               FFI binding to the CUDA interface for programming NVIDIA GPUs
 Description:
     The CUDA library provides a direct, general purpose C-like SPMD programming
@@ -28,7 +28,7 @@
     .
     * "Foreign.CUDA.Runtime"
     .
-    Tested with library versions up to CUDA-9.2. See also the
+    Tested with library versions up to CUDA-10.2. See also the
     <https://travis-ci.org/tmcdonell/cuda travis-ci.org> build matrix for
     version compatibility.
     .
@@ -65,7 +65,7 @@
 Bug-reports:            https://github.com/tmcdonell/cuda/issues
 Category:               Foreign
 Cabal-version:          >= 1.24
-Tested-with:            GHC >= 7.8
+Tested-with:            GHC >= 8.0
 Build-type:             Custom
 
 Extra-tmp-files:
@@ -86,7 +86,7 @@
 
 Library
   hs-source-dirs:       src
-  Exposed-Modules:
+  exposed-modules:
       Foreign.CUDA
       Foreign.CUDA.Path
       Foreign.CUDA.Ptr
@@ -138,16 +138,16 @@
       -- Extras
       Foreign.C.Extra
 
-  Other-modules:
+  other-modules:
       Foreign.CUDA.Internal.C2HS
       Text.Show.Describe
 
-  Include-dirs:         .
-  C-sources:            cbits/stubs.c
+  include-dirs:         .
+  c-sources:            cbits/stubs.c
                         cbits/init.c
 
-  Build-tools:          c2hs >= 0.21
-  Build-depends:
+  build-tools:          c2hs >= 0.21
+  build-depends:
       base              >= 4.7 && < 5
     , bytestring        >= 0.10.4
     , filepath          >= 1.0
@@ -155,7 +155,7 @@
     , uuid-types        >= 1.0
 
   default-language:     Haskell98
-  Extensions:
+
   ghc-options:
       -Wall
       -O2
@@ -172,10 +172,10 @@
 
 
 Executable nvidia-device-query
-  Main-is:              DeviceQuery.hs
+  main-is:              DeviceQuery.hs
   hs-source-dirs:       examples/src/deviceQueryDrv
 
-  Build-depends:
+  build-depends:
       base              >= 4 && < 5
     , cuda
     , pretty
@@ -190,6 +190,6 @@
 source-repository this
     type:               git
     location:           https://github.com/tmcdonell/cuda
-    tag:                v0.10.1.0
+    tag:                v0.10.2.0
 
 -- vim: nospell
diff --git a/src/Foreign/CUDA/Analysis/Device.chs b/src/Foreign/CUDA/Analysis/Device.chs
--- a/src/Foreign/CUDA/Analysis/Device.chs
+++ b/src/Foreign/CUDA/Analysis/Device.chs
@@ -150,6 +150,8 @@
 -- wikipedia entry: <https://en.wikipedia.org/wiki/CUDA#Version_features_and_specifications>
 --
 data Allocation      = Warp | Block
+  deriving Show
+
 data DeviceResources = DeviceResources
   { threadsPerWarp          :: !Int         -- ^ Warp size
   , coresPerMP              :: !Int         -- ^ Number of SIMD arithmetic units per multiprocessor
@@ -168,6 +170,7 @@
   , warpRegAllocUnit        :: !Int         -- ^ Warp register allocation granularity
   , maxGridsPerDevice       :: !Int         -- ^ Maximum number of resident grids per device (concurrent kernels)
   }
+  deriving Show
 
 
 -- |
@@ -322,8 +325,7 @@
         , maxGridsPerDevice     = 16
         }
 
-      Compute 7 0 -> resources (Compute 7 2)      -- Volta GV100
-      Compute 7 2 -> DeviceResources
+      Compute 7 0 -> DeviceResources              -- Volta GV100
         { threadsPerWarp        = 32
         , coresPerMP            = 64
         , warpsPerMP            = 64
@@ -342,21 +344,35 @@
         , maxGridsPerDevice     = 128
         }
 
-      Compute 7 5 -> DeviceResources              -- Turing TU1xx
-        { threadsPerWarp        = 32
-        , coresPerMP            = 64
-        , warpsPerMP            = 32
-        , threadsPerMP          = 1024
+      Compute 7 2 -> (resources (Compute 7 0))    -- Volta GV10B
+        { maxGridsPerDevice     = 16
+        , maxSharedMemPerBlock  = 49152
+        }
+
+      Compute 7 5 -> (resources (Compute 7 0))    -- Turing TU1xx
+        { warpsPerMP            = 32
         , threadBlocksPerMP     = 16
+        , threadsPerMP          = 1024
+        , maxGridsPerDevice     = 128
         , sharedMemPerMP        = 65536           -- of 96KB
         , maxSharedMemPerBlock  = 65536
+        }
+
+      Compute 8 0 -> DeviceResources              -- Ampere GA100
+        { threadsPerWarp        = 32
+        , coresPerMP            = 64
+        , warpsPerMP            = 64
+        , threadsPerMP          = 2048
+        , threadBlocksPerMP     = 32
+        , sharedMemPerMP        = 167936          -- of 192KB
+        , maxSharedMemPerBlock  = 163840
         , regFileSizePerMP      = 65536
         , maxRegPerBlock        = 65536
         , regAllocUnit          = 256
         , regAllocationStyle    = Warp
         , maxRegPerThread       = 255
-        , sharedMemAllocUnit    = 256
-        , warpAllocUnit         = 2
+        , sharedMemAllocUnit    = 128
+        , warpAllocUnit         = 4
         , warpRegAllocUnit      = 256
         , maxGridsPerDevice     = 128
         }
diff --git a/src/Foreign/CUDA/Analysis/Occupancy.hs b/src/Foreign/CUDA/Analysis/Occupancy.hs
--- a/src/Foreign/CUDA/Analysis/Occupancy.hs
+++ b/src/Foreign/CUDA/Analysis/Occupancy.hs
@@ -57,7 +57,7 @@
 import Data.Ord
 import Data.List
 
-import Foreign.CUDA.Analysis.Device
+import Foreign.CUDA.Analysis.Device                                 hiding ( maxSharedMemPerBlock )
 
 
 -- GPU Occupancy per multiprocessor
@@ -97,7 +97,8 @@
 
     -- Physical resources
     --
-    gpu = deviceResources dev
+    gpu                  = deviceResources dev
+    maxSharedMemPerBlock = fromIntegral (sharedMemPerBlock dev) -- 2080Ti reports 48KB, but should be 64KB !
 
     -- Allocated resource limits
     --
@@ -116,16 +117,16 @@
 
     -- Maximum thread blocks per multiprocessor
     --
-    limitDueToWarps                     = threadBlocksPerMP gpu `min` (warpsPerMP gpu `div` limitWarpsPerBlock)
+    limitDueToWarps                 = threadBlocksPerMP gpu `min` (warpsPerMP gpu `div` limitWarpsPerBlock)
     limitDueToRegs
-      | regs > maxRegPerThread gpu      = 0
-      | regs > 0                        = (limitRegsPerSM `div` limitRegsPerBlock) * (regFileSizePerMP gpu `div` maxRegPerBlock gpu)
-      | otherwise                       = threadBlocksPerMP gpu
+      | regs > maxRegPerThread gpu  = 0
+      | regs > 0                    = (limitRegsPerSM `div` limitRegsPerBlock) * (regFileSizePerMP gpu `div` maxRegPerBlock gpu)
+      | otherwise                   = threadBlocksPerMP gpu
 
     limitDueToSMem
-      | smem > maxSharedMemPerBlock gpu = 0
-      | smem > 0                        = sharedMemPerMP gpu `div` limitSMemPerBlock
-      | otherwise                       = threadBlocksPerMP gpu
+      | smem > maxSharedMemPerBlock = 0
+      | smem > 0                    = sharedMemPerMP gpu `div` limitSMemPerBlock
+      | otherwise                   = threadBlocksPerMP gpu
 
 
 -- |
diff --git a/src/Foreign/CUDA/Driver/Device.chs b/src/Foreign/CUDA/Driver/Device.chs
--- a/src/Foreign/CUDA/Driver/Device.chs
+++ b/src/Foreign/CUDA/Driver/Device.chs
@@ -290,8 +290,6 @@
 #endif
 
 
--- TODO: cuDeviceGetLuid, introduced CUDA-10.0 (windows only)
-
 -- |
 -- Return the properties of the selected device
 --
diff --git a/src/Foreign/CUDA/Driver/Exec.chs b/src/Foreign/CUDA/Driver/Exec.chs
--- a/src/Foreign/CUDA/Driver/Exec.chs
+++ b/src/Foreign/CUDA/Driver/Exec.chs
@@ -352,8 +352,6 @@
   } -> `Status' cToEnum #}
 #endif
 
--- TODO: cuLaunchCooperativeKernelMultiDevice introduced CUDA-9.0
--- TODO: cuLaunchHostFunc introduced CUDA-10.0
 
 --------------------------------------------------------------------------------
 -- Deprecated
diff --git a/src/Foreign/CUDA/Driver/Graph/Build.chs b/src/Foreign/CUDA/Driver/Graph/Build.chs
--- a/src/Foreign/CUDA/Driver/Graph/Build.chs
+++ b/src/Foreign/CUDA/Driver/Graph/Build.chs
@@ -659,12 +659,6 @@
 #endif
 
 
--- TODO: since CUDA-10.0
---  * cuGraphHostNode[Get/Set]Params
---  * cuGraphKernelNode[Get/Set]Params
---  * cuGraphMemcpyNode[Get/Set]Params
---  * cuGraphMemsetNode[Get/Set]Params
-
 --------------------------------------------------------------------------------
 -- Internal
 --------------------------------------------------------------------------------
